为什么在制动后执行while循环?

时间:2012-03-12 06:50:28

标签: c++ break do-while

我遇到了奇怪的情况,这里发生了什么。我正在使用一个do while循环,它在制动后再次使用一次。
这是一个简单的版本:

int i = 0;
do{
if(i>=1) break;
}while(i++);

i值为2.我只是好奇它是不是应该如何,或者我只是在我的更复杂版本的代码中出错了?
这是一个简单的解决方法,我只需要在wgile的开头指定一个iTemp变量并使用i的内容。

P.S。我在另一个内部使用了两个do while循环,这可能是导致它的原因吗?

编辑:Cmon人给我一个突破,这是错字。 :d

4 个答案:

答案 0 :(得分:4)

brake不是关键字,您的修改后的版本甚至无法编译。而是运行旧版本,即没有新的中断。

解决方案:使用break


更新

  

P.S。我正在使用两个while while循环一个在另一个内部可能是导致它的原因吗?

是。 break只会突破写入的最内层循环。

顺便说一下,我意识到你显示的循环总是只运行一次。您的循环条件为i++,其增加i并在增量之前为您提供值。在第一次增加之前,i0,因此首次运行时您的循环条件为0,因此运行一次。

答案 1 :(得分:2)

检查其break不是brake

答案 2 :(得分:2)

  

P.S。我正在使用两个while while循环一个在另一个内部可能是导致它的原因吗?

很可能。一个break(注意拼写)只会突破一个循环,所以如果它在内部循环中,它会突破该循环,但在结束后立即继续执行内循环。在外部循环紧接在内部之后的(相当普遍的)情况下,你最终会再次执行外循环的条件。

答案 3 :(得分:0)

int i = 0;
do
{    
 if(i>=1) 
    break;
}while(i++);

循环条件和连接条件无法想象。 “对不起,如果我看起来很粗鲁”