在 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;
    
    <...>

如果循环内只有这些ifs,并且条件是整数值,则应考虑改用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 文件?

如果满足某些条件,则从行中获取信息

如何计算向量中的渐进平均值但在满足条件时重新启动?

Jenkins 声明性管道 - 如果不满足某些条件而不是跳过一个阶段,如何中止整个构建?

C++实现 生产者消费者模型

如何从一个表中查找多个列满足不同条件的记录?