我有一种感觉,我在这里会感到非常愚蠢,但我只是在学习如何使用 ++
和 --
来递增和递减 while 循环的变量,并且想知道为什么这段代码有效以及为什么它无效' t?
错误代码:
int ctr = 0;
while (ctr < 10)
printf("%d",ctr);
ctr=ctr+1;
错误代码无限期地输出零。
工作代码:
int ctr=0;
while (ctr++ < 10)
printf("%d",ctr);
这个想法是输出为 012345678910,但即使在工作代码中,它也从 1 开始一直到 10,而不是从 0 开始。即使 ctr 的初始值为 0。
最佳答案
第一种情况
while (ctr < 10)
printf("%d",ctr);
ctr=ctr+1;
while
循环体仅被视为printf()
语句。 ctr=ctr+1;
不是循环体的一部分。因此,在循环条件检查中有一个未更改的变量,这使其成为无限循环。
您需要使用 {}
将这两个语句包含在 block 作用域中,以便这两个语句都成为循环体的一部分。类似的东西
while (ctr < 10) {
printf("%d",ctr);
ctr=ctr+1;
}
就可以了。
第二种情况
int ctr=0;
while (ctr++ < 10)
printf("%d",ctr);
在 while
条件检查表达式中,ctr
已经作为后缀增量运算符的副作用而递增。因此,在打印该值时,会打印已经递增的值。
关于c - 如何在循环内增加 while 循环的计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41995217/