C++/C能直接跳出外循环

dmhorse 2004-08-23 12:38:23
mysection:
for(;;)
for(;;)
{
if(xxx)
continue mysection;
else
break mysection;
}

能直接跳出外循环吗?

如果不行,有其它曲折的方法吗

...全文
1078 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
libbyliugang 2004-08-28
  • 打赏
  • 举报
回复
goto要谨慎使用但不是说“千万不使用”;
在现代程序设计语言中goto并没有完全消失;
需要goto ,是因为在程序的非结构化控制(在
对硬件编程中用的比较多)和与低级语言进行接
口时,用goto非常方便;
版主的问题属于程序的非结构化控制;用goto
是理所当然的;若采取其他方法并非不可行;
而是,反而提高了程序的复杂度,代码反而
更难读!
建议版主将含有goto语句的代码封装成函数,
这样既保持了结构化程序设计的原则,又不会使
由于使用了许多goto而使程序难于阅读!
linuxgyh 2004-08-28
  • 打赏
  • 举报
回复
goto
你写的好象csharp/java程序!
短歌如风 2004-08-27
  • 打赏
  • 举报
回复

当需要跳出多层嵌套循环(个人认为至少在三层以上)时,用goto是一个很好的选择,因为这时它比在多层循环中都去判断一个标志更好理解。goto并不总是影响可读性,这也是在C和Pascal中保留goto的原因——虽然这种情况并不见。

如果不使用goto而使用标志,也不要用break语句而要把对标志的检查放到循环条件中去。break只跳出一层循环,continue结束一次循环,它们与用标志相比并没有优点,却与goto一样破坏了块结构,是真正的“有破坏无建设”,它们才是最不应该使用的。
LarryKun 2004-08-27
  • 打赏
  • 举报
回复
setjmp.........longjmp
肯定可以的~~
toni_07 2004-08-27
  • 打赏
  • 举报
回复
我也觉得内部的for只要执行一次,为什么还要用呢。不明白
julysnowcn 2004-08-27
  • 打赏
  • 举报
回复
是啊,在这儿还是用goto好!
duckdj 2004-08-27
  • 打赏
  • 举报
回复
感觉这里用goto比较合适
qiuafa 2004-08-27
  • 打赏
  • 举报
回复
内外对调!
  • 打赏
  • 举报
回复
必要的时候用连 longjmp 我都用,何况是 goto
sungengyu 2004-08-27
  • 打赏
  • 举报
回复
goto 只有在跳出多重循环时才有点用。为何不用?

活人还能被for憋死?
sungengyu 2004-08-27
  • 打赏
  • 举报
回复
goto 只有在跳出多重循环时才有点用。为何不用?

活人还能被goto憋死?
庄鱼 2004-08-26
  • 打赏
  • 举报
回复
用goto,当然变量也不错:
bool key=true;
for(;key;)
for(;key;)
{
mysection;
if(!xxx)
key=false;
}
snow810211 2004-08-26
  • 打赏
  • 举报
回复
不能跳出·!
可以用goto语句~~goto语句不推荐过多地使用,但是在这里可以增强程序的可读性!为什么不用呢:)
baiyuanfan 2004-08-26
  • 打赏
  • 举报
回复
编译后还不都是GOTO还。
goodluckyxl 2004-08-23
  • 打赏
  • 举报
回复
其实很多逻辑控制的方法跳出
设置时间,循环次数,跳出标志...
楼主这要看实际需要,不是死的

sisijin 2004-08-23
  • 打赏
  • 举报
回复
是想实现这个功能吗?
mysection:
for(;;)
{
bool flag = true;
for(;;)
{
if (xxx)
break;
else
{
flag = false;
break;
}
}
if (!flag)
break;
}

不过我不太明白,这样子看起来似乎内部的for只会走一次啊,那为什么还要用for呢?楼主是不是有笔误?
Andy84920 2004-08-23
  • 打赏
  • 举报
回复
不能跳出外层for循环.

1>goto.不推荐.
2>return;直接退出.可能达不到你的目的
3>可以用变量来控制.比如在里层for中的else中设置一个bool变量为true.(当然一开始是
false的)然后在外层for中判断此变量是真是假.再来一次break.就行.
limitmx 2004-08-23
  • 打赏
  • 举报
回复
goto安全性欠缺,还是设置个bool变量判断吧
一路奔跑 2004-08-23
  • 打赏
  • 举报
回复
我做过的几个项目里好象一直没想过 goto。
NC217 2004-08-23
  • 打赏
  • 举报
回复
如果你用 for(;;)
就可以用break;语句
也可以用exit();

加载更多回复(9)

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧