多层循环的跳出(return goto break continue 的用法与区别)

1.continue:结束本次循环,即跳过循环体下面未执行的语句,接着进行是否执行下一次循环的判定。

#include <stdio.h>
int main()
{
    int i = 0;
    for (i = 1; i <= 10;i++)
    {
        if (i == 5)
        {
            continue; 
    //不再执行后面的语句,而是回到for语句判断循环条件是否成立.
        }
        printf("%d\n",i);
  //打印出来的数字为1-10之间去掉5.
    }
    return 0;
}

2.break:从循环体内跳出,结束整个循环过程,不再判断执行循环的条件是否成立,也不执行循环体后面的语句。(break语句只能用于循环语句和switch语句中,不能单独用于其他语句)


#include <stdio.h>
int main()
{
    int i = 0;
    for (i = 1; i <= 10;i++)
    {
        if (i == 5)
        {
            break; 
//直接跳出循环体.
        }
        printf("%d\n",i); 
//打印出来的数字为1-4.
    }
    return 0;
}

3.goto:无条件转移语句,能够立即从最深层循环中退出来。(不建议过分使用goto语句,容易使得程序难于理解)

while (condition1)
    {
        while (condition2)
        {
            while (condition3)
            {
                if (some disaater)
                    goto quit;
//跳出所有循环,将程序的执行流从当前语句转移到quit后面的语句.
            }
        }
    }
quit:
//遇到goto语句之后,程序从这个地方开始执行.
    ;

4.return:跳出循环的同时也做函数返回,直接写return是针对void返回值的函数来返回的,如果不是void的话,你就要在return后面加上你的返回值。

while (condition1)
    {
        while (condition2)
        {
            while (condition3)
            {
                if (some disaater)
                    return 0;
//函数终止,并返回其后面的值,循环也就结束了。
            }
        }
    }

5.总结

 continue,只能跳出本次循环;break,只能跳出单层的循环;return将整个函数都返回了,没法再继续了;如果是在陷入了很深层次的循环里想要跳
 出最外层的循环,用 goto 直接跳出却比用 break 一个循环一个循环地跳出要好得多,甚至形象比喻的说:“就像楼房着火了,来不及从楼梯一级一    
 级往下走,可从窗口跳出火坑(也可以看出还是尽量少用)。” 其实,你可以将 break 和 continue 理解成弱化了的 goto 语句。
  • 17
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值