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

当您有类似-

while (expression);

无论表达式是否为真,while循环都会运行。但是,如果您放-

if (expression);

无论表达式是否为真,该语句都会运行。这是因为if和while的语法是-

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

因此,仅在<expr>的值为true时才执行<statement>。一会儿,它将进入无限循环。

那么问题是它执行什么<statement>。如果没有括号{},则下一条语句终止于;即使该声明为空。请注意,空语句是有效的。

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

在这两种情况下,都不会执行任何操作(在对表达式求值之后)。虽然while可能会进入无限循环。注意:“ {}”是一个语句块(一种语句类型(包含其他语句的列表))。