konsei 2018-06-13 11:14 采纳率: 72.2%
浏览 2304
已采纳

c语言中怎样替换goto语句?

如下代码,在3层for循环里,当条件2满足时,就要跳出这3层循环,重新执行while循环,
这里用的是goto语句来跳出的,条件2不满足就要执行goto过去的代码后再重新while循环,
要怎么改成不用goto语句的呢?

 while(1){
                if(条件1){
                        //跳出while循环
                        break;
                }
                for(i=0; i<7; i++)
                {
                    for(j=0; j<7; j++)
                    {
                        for(k=0; k<7; k++)
                        {
                            if(条件2)
                            {
                                goto a;
                            }
                        }
                    }
                }
                a:
                if(i == 7)
                {
                    ...
                } else {
                    break;
                }

 }
  • 写回答

12条回答 默认 最新

  • 一片树叶的幻想 2018-06-14 00:46
    关注

    我觉得你已经进入了思维的误区了,C语言在当初开发过程中既然设定了有goto语句这个功能,就是为了满足一些特殊场景,
    在这种场景中,使用goto语句能够很好的解决问题,并且使代码简洁,只不过在新手开发过程中,理解代码执行的流程能力较弱,此时使用goto语句
    容易引起流程混乱,所以书上说尽量不要使用goto语句。
    但是并没有说不能使用,你只需要把跳转语句标识写的标准、易懂一些就行,比如 FUNNAME_goto_break_sig,这样才能使程序更加健壮。
    看了其它的人的方法,觉得都没有你原来的代码简洁,不是吗?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(11条)

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘