假设我想使用for循环在C中打印五次消息.为什么如果我在for循环之后添加一个分号,如下所示:
for (i=0;i<5;i++);
Run Code Online (Sandbox Code Playgroud)
消息不会被打印5次,但是如果我不在那里放分号呢?
das*_*ght 24
分号是一个称为空语句 *的合法语句,意思是"什么都不做".由于for循环执行单个操作(可能是一个封闭的块{}),分号被视为循环体,导致您观察到的行为.
以下代码
for (i=0;i<5;i++);
{
printf("hello\n");
}
Run Code Online (Sandbox Code Playgroud)
解释如下:
for (i=0;i<5;i++){}正如您所看到的,重复的操作;不是printf.
for (i=0;i<5;i++);
Run Code Online (Sandbox Code Playgroud)
相当于
for (i=0;i<5;i++){}
Run Code Online (Sandbox Code Playgroud)