为什么{} while(条件); 在它结束时需要分号但是(条件){}不是吗?

s4e*_*eed 10 c c++ while-loop do-while

我总是有问题放在;最后while或不放在do while循环结束.那是什么原因?为什么

int numItemsToProcess = 3;  
while(numItemsToProcess > 0)  
{  
    // process an item  
    numItemsToProcess--;  
} 
Run Code Online (Sandbox Code Playgroud)

;最后不需要但是

do  
{  
    numItemsToProcess --;
} while (numItemsToProcess > 0);  
Run Code Online (Sandbox Code Playgroud)

呢?也许原因并不太重要.但是当你知道你能记住放在哪里的原因时;.

Som*_*ude 12

除了块语句之外,在所有语句之后加上分号.这就是你把它放在whilein do while之后但不是之后的原因while {...}.

您还可以使用它来终止几乎所有声明.我现在能想到的唯一例外是函数体和namespaceC++中的实体.


pad*_*ddy 9

它们是两种不同的循环结构.你只需要记住.

将它们视为一线:

do one_thing while( condition );

do { stuff } while( condition );
Run Code Online (Sandbox Code Playgroud)

while( condition ) one_thing;

while( condition ) { stuff }
Run Code Online (Sandbox Code Playgroud)

这些都是最后需要分号的表达式,除了最后一个,其中大括号在逻辑上表示表达式的结尾(考虑if语句).

  • 或者`做事情(条件);` (3认同)