在 C++ 中满足某些条件(如果)后,如何重新启动 while 循环? [关闭]
Posted
技术标签:
【中文标题】在 C++ 中满足某些条件(如果)后,如何重新启动 while 循环? [关闭]【英文标题】:How can I restart while loop after certain condition (if) satisfied in c++? [closed] 【发布时间】:2012-09-26 06:09:35 【问题描述】:我在while循环中有很多if语句,程序必须根据条件打印错误消息,但如果有多个错误,则必须只有其中一个。
【问题讨论】:
也许switch case
语句可以更好地工作
你的意思是进入循环的下一次迭代,还是像从第一次迭代一样重新开始循环?
但是在条件之后,我必须阅读字符串(命令)的下一部分才能知道它们是否有错误?并且所有这些都必须在while循环中,因为用户不断输入命令
是的,Jerry Coffin,这正是我想说的
你应该更喜欢 Switch 而不是多个 If 或 if-else 阶梯 ..
【参考方案1】:
您的问题不是很详细,因此很难说出您到底想要什么。
如果您希望 while 循环在任何错误触发后进入下一次迭代,您应该使用 continue
语句:
while( something )
if( condition )
//do stuff
continue;
else if( condition 2 )
//do other stuff
continue;
<...>
如果循环内只有这些if
s,并且条件是整数值,则应考虑改用switch
:
while( condition )
switch( errorCode )
case 1:
//do stuff;
break;
case 2:
//do other stuff;
break;
<...>
如果您想完全重新启动循环……嗯,这有点困难。由于您有一个while
循环,您可以将条件设置为它的起始值。例如,如果您有这样的循环:
int i = 0;
while( i < something )
//do your stuff
i++;
然后你可以像这样“重置”它:
int i = 0;
while( i < something )
//do your stuff
if( something that tells you to restart the loop )
i = 0;//setting the conditional variable to the starting value
continue;//and going to the next iteration to "restart" the loop
但是,您应该非常小心,因为很容易意外获得无限循环。
【讨论】:
不是所有的整数,命令包括字符串、整数、双精度。根据错误的优先级,终端上只需要出现一个错误。但我的就像把每一个错误都放在终端上 在第一个代码中,不需要continue语句 @Sha,我在等这个评论。我们不知道在许多if
语句之后是否还有其他代码。如果没有 - 你是对的。如果有 - 需要 continue
。
你是对的。我也是这么想的。但他没有写任何代码。所以我们不知道。【参考方案2】:
String errorMessage = "No Error";
while( cond)
if( cond 1)
errorMessage = " Error 1"
if( cond 1)
errorMessage = " Error 1"
if( cond 1)
errorMessage = " Error 1"
if( cond 1)
errorMessage = " Error 1"
如果您想在遇到任何错误后中断,请使用break
如果您想在遇到任何错误后忽略当前迭代,请使用continue
如果遇到任何错误后要终止执行,请使用exit
【讨论】:
嗯,我相信这是 OP 实际上需要摆脱的。以上是关于在 C++ 中满足某些条件(如果)后,如何重新启动 while 循环? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何根据满足某些条件的现有文件创建和重新排列新的 csv 文件?