C语言:break、continue、goto、return和exit的区别

     C语言中有几个语句可以打乱程序的执行顺序,不同的语句对应不同的功能。

1、break

          break语句表示退出当前的程序段,跳过当前程序段里未执行的程序,执行新的程序段代码。

        1、break经常用在switch语句中,在switch语句中使用了break语句,当执行switch语句中的break语句时,仅退出switch语句,执行switch后面的程序块。

switch ( n )
{

    case 1 :
        程序1;
        break;

    case 2 :
        程序2;
        break;

    case 3 :
        程序3;
        break;

    case 4 :
        程序4;
        break;

    case 5 :
        程序5;
        break;

    default:
        ;
        break;
}

         假如 n=1,则执行完程序1,之后就跳出switch,执行switch下面的程序。

            2、break还会经常用在循环结构里面,在循环结构中使用break语句,如果执行了break语句,那么就退出循环,接着执行循环结构下面的第一条语句。

        特别注意:如果在多重嵌套循环中使用break语句,当执行break语句的时候,退出的是它所在的循环结构,对外层循环没有任何影响。


for(1)
{
    for(2)
    {
        break1;
    }
   
    break2;
}

     当执行break1的时候,跳出for(2),for(2)程序结束;然后继续执行for(2)下面的程序块,继续进行for(1),执行break2,跳出跳出for(1),for(1)程序结束。

2、continue

        continue语句是这几种结束循环的方式中最特殊的,因为它并没有真的退出循环,而是只结束本次循环体的执行,继续下次循环,所以continue只是跳出当前的这一次循环。

for(1)
{
    for(2)
    {
        continue1;
    }
   
    continue2;
}

 

当执行continue1的时候,跳出for(2),继续进行for(2),直到for(2)结束;然后继续执行for(2)下面的程序块,执行continue2,跳出跳出for(1),继续进行for(1),直到for(1)结束。

3、goto

   goto语句表示跳转,goto语句可以跳转到标号所在的任何地方继续往下执行。

  注意:标号必须与goto语句在同一个函数体内,不能跨越函数体。

for(1)
{
    ...
    goto label;
    ...
}
....

label:
.....

        函数执行goto label语句,然后程序跳转到 label 标签所在的位置,执行 label 下面的程序。

4、return

        return是结束当前的函数,返回上一层函数,无论return在函数的任何位置。如果在程序中遇到return语句,那么代码就退出该函数的执行,返回到函数的调用处,如果是main()函数,那么结束整个程序的运行。

 

5、exit

      exit 也是退出当前的函数,但是exit()函数与return语句的最大区别在于,调用exit()函数将会结束当前进程,同时删除子进程所占用的内存空间,把返回信息传给父进程。当exit()中的参数为0时,表示正常退出,其他返回值表示非正常退出,执行exit()函数意味着进程结束;而return仅表示调用堆栈的返回,其作用是返回函数值,并且退出当前执行的函数体,返回到函数的调用处,在main()函数中, return n和exit(n)是等价的。

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值