C++:如何决定继续循环
C++: How to decide the loop to continue to?
我有嵌套的do-while,while和for循环。
有没有办法决定"继续"哪个循环?各种解决方案会很棒(不仅是转到..)谢谢!
while (foo==true) // loop1
{
do
{
for(int i=0; i<someNumber ; i++) // loop3
{
if( soo==1)
{
<CONTINUE_TO_LOOP1>
}
else if( soo==2 )
{
<CONTINUE_TO_LOOP2>
}
else if( soo==3 )
{
<CONTINUE_TO_LOOP3>
}
}
} while (moo==true) //loop2
}
也许你可以做这个变通办法。
while (foo==true) // loop1
{
do
{
for(int i=0; i<someNumber ; i++) // loop3
{
if( soo==1)
{
break;//<CONTINUE_TO_LOOP1>
}
else if( soo==2 )
{
break;//<CONTINUE_TO_LOOP2>
}
else if( soo==3 )
{
continue;//<CONTINUE_TO_LOOP3>
}
}
if( soo==1)
{
break;//<CONTINUE_TO_LOOP1>
}
else if( soo==2 )
{
continue;//<CONTINUE_TO_LOOP2>
}
} while (moo==true) //loop2
if( soo==1)
{
continue;//<CONTINUE_TO_LOOP1>
}
}
经过一些重组,并且没有 goto:
bool loop3()
{
for (int i=0; i < someNumber ; i++) {
if(soo == 1) {
return false;
} else if(soo == 2) {
return true;
} else if(soo == 3) {
continue;
}
}
return true;
}
循环变为:
while (foo == true) // loop1
{
do
{
if (loop3() == false) {
break;
}
} while (moo == true) //loop2
}
我提倡无条件的分支到表达标签。其他解决方案将花费额外的条件分支和可能的状态变量,将不太灵活,并且可读性可能要差得多。
CONTINUE_TO_LOOP3很简单:continue
CONTINUE_TO_LOOP2简单:break
CONTINUE_TO_LOOP1这是一个有趣的:
- 如果不使用四个字母的单词
goto
,就无法一步到位 - 或者在 loop2 周围放置一个尝试捕捉并使用加注器离开。
- 或者假设 loop1 的末尾和 loop2 的末尾之间没有代码:
moo = false ; break ;
相关文章:
- 循环后如何继续阅读
- 在决定是通过参考还是通过价值时,尺寸真的是一个问题吗
- 我正在尝试使用 c++ 创建一个货币转换程序,我不知道如何继续
- C++:继续创建新的变量可以吗
- 如何继续读取不同功能中的文件,而不是从头开始再次读取文件?
- C++递归来决定数组中的两个值
- 在 c++ 中三元运算符中不允许继续(关键字)吗?
- C++ 如何暂停控制台输出,以便用户可以在继续之前阅读信息
- 循环不继续无法弄清楚为什么
- 你如何决定将C++和/或 python 中的成员函数表示为静态?
- 附加到 gdb 会中断并且不会继续该过程
- C++ 在信号处理程序后继续执行
- 为什么我的Qt程序在断言失败后继续运行?
- 如何打印下一个字母直到 Z 并继续到 A?
- 超时后,线程睡眠不会继续执行
- 使用 ssh 重新连接到远程 Ubuntu 机器后,如何继续使用 gdb 调试 c++ 代码?
- 如何创建一个 while 循环,继续循环,直到在C++中输入'using streams'键?
- 失败后可以继续从流读取吗?
- 在构造函数中删除后继续执行
- C++:如何决定继续循环