C++中while和if语句后的分号


当你有一个这样的语句:

while (expression);

while循环无论表达式真假都会运行。但是,如果你写成:

if (expression);

语句无论表达式真假都会运行。这是因为if和while的语法是:

if (<expr>) <statement>
// or
while (<expr>) <statement>

所以只有当<expr>计算结果为真时,才会执行<statement>。在while循环中,它将进入无限循环。

所以问题是什么<statement>被执行。如果没有花括号{},那么下一个语句将由;终止,即使该语句是空的。请注意,空语句是有效的。

if (<expr>)    /* Empty Statement */;
while (<expr>) /* Empty Statement */;

在这两种情况下,都没有执行任何操作(表达式计算后)。虽然while循环可能会进入无限循环。注意:'{}'是一个语句块(一种包含其他语句列表的语句)。

更新于:2020年2月11日

2K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.