#include<stdio.h>
int main()
{
int i=5;
while(i--)
{
printf("%d\n",i);
};
printf("Out of loop\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这段代码工作正常!是否;在一个循环的结束并不意味着什么?所以,即使我们添加它,我们也没有任何问题?只是好奇!我认为;在循环结束时添加没有任何意义.
unw*_*ind 10
它"有效",但它是一个空的语句,因此它改变了程序的结构.
考虑一下:
if (foo())
while (bar())
{
foo_some_more()
}
else
{
do_something_about_it();
}
Run Code Online (Sandbox Code Playgroud)
上面的工作既然while是单一的陈述,因此else仍然能够"找到" if正确的.如果在while-loop的右大括号后面添加一个分号,则会破坏该结构并且不再编译.
因此,虽然空的陈述看起来无害,但它们并非如此,它们确实应该被避免.另外:当然,它们会给代码增加无意义的混淆.
在;这里被认为是一个空语句或空语句.
样品
int i = 0;;
Run Code Online (Sandbox Code Playgroud)
有关详细信息,您可以查看此问题.
警告:不要将此视为拇指规则.在某些情况下,表示可能看起来相同,但它们不是空语句,而是语法的一部分.示例:do..while循环