为什么第一个是无限循环?
Why is the first one an infinite loop?
我很困惑.. 在它打印第一个 c,即 1,然后 c 变成 2 然后它应该打印 c,即 2..
int c = 1;
while (c<=10)
printf("%d\n", c);
c = c + 1;
while (c<=10)
{
printf("%d\n", c);
c = c + 1;
}
因为缩进块周围没有花括号,所以只有printf
是while的一部分。
对于没有大括号的 while 循环,它在 while 循环之后采用单个语句。
所以在第一个 while 循环中,while 只接受 printf 语句。
如果用大括号括起来,则将其视为语句块。如果它没有被括在大括号中,它只需要一个语句。
所以,不会增加C的值。
当 While 循环后面没有
{
}
下一条语句只被认为是循环的一部分
所以你的代码 运行s while 循环无限期打印 c 的值,因为 while 循环到 运行 的条件总是 true
将打印和增量语句括在花括号中!
这是因为如果你不使用 {} while 只适用于第一行,那就是你有类似
while (c<=10)
printf("%d\n", c);
c 永远不会改变,循环永远运行
您只是在打印语句上循环,变量没有递增。
c = c + 1;
未调用。 { }
定义 while 循环的范围而不是制表符。
变化:
while (c<=10)
printf("%d\n", c);
c = c + 1;
至:
while (c<=10){
printf("%d\n", c);
c = c + 1;
}
原因是如果while后面没有括号,那么就只执行后面的第一条指令
我很困惑.. 在它打印第一个 c,即 1,然后 c 变成 2 然后它应该打印 c,即 2.. int c = 1;
while (c<=10)
printf("%d\n", c);
c = c + 1;
while (c<=10)
{
printf("%d\n", c);
c = c + 1;
}
因为缩进块周围没有花括号,所以只有printf
是while的一部分。
对于没有大括号的 while 循环,它在 while 循环之后采用单个语句。
所以在第一个 while 循环中,while 只接受 printf 语句。
如果用大括号括起来,则将其视为语句块。如果它没有被括在大括号中,它只需要一个语句。
所以,不会增加C的值。
当 While 循环后面没有
{
}
下一条语句只被认为是循环的一部分 所以你的代码 运行s while 循环无限期打印 c 的值,因为 while 循环到 运行 的条件总是 true 将打印和增量语句括在花括号中!
这是因为如果你不使用 {} while 只适用于第一行,那就是你有类似
while (c<=10)
printf("%d\n", c);
c 永远不会改变,循环永远运行
您只是在打印语句上循环,变量没有递增。
c = c + 1;
未调用。 { }
定义 while 循环的范围而不是制表符。
变化:
while (c<=10)
printf("%d\n", c);
c = c + 1;
至:
while (c<=10){
printf("%d\n", c);
c = c + 1;
}
原因是如果while后面没有括号,那么就只执行后面的第一条指令