跳出关键词break、goto、return和continue

(1)break语言

break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则会从能够满足条件的地方(即与switch(表达式)括号中表达式匹配的case)开始执行,直到switch结构结束。

当break语句用于do-while、for、while循环语句中时,可是程序终止循环。而执行循环后面语句,通常break语句总是和if语句联在一起。既满足条件便跳出循环。

例:
int main()
{
    int i = 0;
    int n = 5;
    for (i = 0; i < 10; i++)
    {
        if (i == n)
        {
            break;
        }
        printf("hi!\n");
    }
    printf("hi!\n");
}
break是在第六次的时候结束,不过,它是结束循环,所以还得执行循环外的一次hi,总共六次;

(2)  goto

goto语句也称为无条件转移语句,goto语句标号;其中语句标号是按照标识符规定书写的符号,放在某一语句行的前面,标号后加冒号(;)。语句标号起标识语句的作用,与goto语句配合使用。C语言不限制程序中使用标号的次数,单个标号不得重复。goto语句的语意是改变程序流向,转去执行语句标号所标识的语句,它通常与条件语句配合使用,即用来实现条件转移,构成循环,跳出循环体等功能,但是在结构化程序设计中一般不主张使用goto语句,以免造成程序混乱,使理解和调试程序都产生困难。

例:void main(){
 int a=2,b=3;
 if(a<b)
 goto aa;
 printf("hello");
 aa:printf("s"); 
 return 0;
}
改程序的执行结果为s
所有在goto aa这句之后直接跳转到aa:printf("s");
aa:为标记行。冒号切记不可省略。

(3)return

return很强大,如果一个函数中有一个return,并且执行了,那么这个函数就完了。return 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。 return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的,返回值可以为各种数据类型,如:int,float,double,char,a,*a(指针)。 如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

例:

int main()
{
    int i = 0;
    int n = 5;
    for (i = 0; i < 10; i++)
    {
        if (i == n)
        {
            return;
        }
        printf("hi!\n");
    }
    printf("hi!\n");
}

return在执行到第六次的时候结束,直接结束函数,那么会有五次hi;

(4)continue

continue和break类似,都是结束循环,不过,没有break强大,他只能结束本次循环,也就是说,他并不跳出循环,而是继续往下判断循环条件执行语句.他只能结束循环中的一次过程,但不能终止循环继续进行。

例:

int main()
{
    int i = 0;
    int n = 5;
    for (i = 0; i < 10; i++)
    {
        if (i == n)
        {
            continue;
        }
        printf("hehe!\n");
    }
    printf("hehe!\n");
}

continue是结束了第六次循环,所以是在循环内部执行了九次,循环外部一次,总共十次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值