为什么{} while(condition); 在它结束时需要分号但是(条件){}不是吗?
我总是有放置的问题;
在结束while
或不将它放在do while
循环的末尾。 那是什么原因? 为什么
int numItemsToProcess = 3; while(numItemsToProcess > 0) { // process an item numItemsToProcess--; }
不需要;
最后但是
do { numItemsToProcess --; } while (numItemsToProcess > 0);
呢? 也许原因并不太重要。 但是当你知道你记得放在哪里的原因时;
。
除了块语句之外,在所有语句后面加分号。 这就是你在while
之后放置它的原因,而不是在while {...}
的块之后。
您还可以使用它来终止几乎所有声明。 我现在能想到的唯一例外是函数体和C ++中的namespace
体。
它们是两种不同的循环结构。 你只需要记住。
将它们视为单行:
do one_thing while( condition ); do { stuff } while( condition );
和
while( condition ) one_thing; while( condition ) { stuff }
这些都是最后需要分号的表达式,除了最后一个,其中大括号逻辑上表示表达式的结尾(想想if
语句)。
因为这是一个标准。
请参阅ISO C ++标准页码128
也
这是因为while语句在do-while循环中是有效的。
int x = 10; int y = 10; do while(x > 0) x--; while(x = y--);
因为你要结束陈述。
语句以块(由花括号分隔)结束,
或者用分号。 “执行此操作时”这是一个单独的语句,并且不能以块结尾(因为它以“while”结尾),
所以它需要一个分号,就像任何其他语句一样。
这背后的原因如下
-
条件 : – 条件有签名之类的
while (expression) statement
while循环根据提供给它的表达式执行。 如果表达式为true,则while {}中写入的语句将执行else。 你也可以标记;
之后while (expression);
但它只会立即完成while
语法,因为;
表示结束语。 通常,循环检查表达式并执行里面的语句列表。
-
做条件 : – 做同时签名
do statement while (expression);
do-while
是一个有趣的循环。 无论while
expression
是真还是假,下面的语句都会执行至少一个特性。 do while
的流程表示后面的语句将执行一次然后检查while
条件。 如果while
条件为真,则将再次执行do
之后的语句。 之所以有;
在do ... while (expression);
结束do ... while (expression);
是因为在这里被视为一种陈述,因为它的身体在它之上。 在c ++中,每个语句必须以; do while
结束;
。