当执行for语句时,计数器变量的值必须增加1,因为我使用了预增量运算符。
#include <stdio.h>
int main (void)
{
unsigned int counter ;
for ( counter = 1; counter <= 10; ++counter /*here is problem*/) {
printf( "%u\n", counter );
}
}
问题 -
执行程序时,计数器变量的值最初为1而不是2。
答案 0 :(得分:1)
在for
循环中
for(first statement; second statement; third statement){//...};
通常用于更新的第三个语句在每次迭代结束时执行,因此在第一次迭代期间变量counter
将为1
并变为第一次迭代结束时2
。
如果你想让你的counter
变量在迭代开始时递增,那么尝试在for循环的第二个语句中使用它++counter
:
for ( counter = 1; ++counter <= 10;)
原因:
因为,for循环是一个预测试循环和条件,通常是在每次迭代开始时检查第二个语句。所以现在你的counter
在每次迭代开始时递增
答案 1 :(得分:0)
当执行for语句时
第一次循环时,第三个语句没有被检查天气你使用增量运算符或赋予for循环的条件但是
当循环开始迭代然后如果你在for循环的第三个语句使用任何递增或递减运算符然后它工作,如果你在for循环的第三个语句使用任何条件,那么你的程序将永远不会导致无限循环。
答案 2 :(得分:0)
如果您希望计数从2开始,则应将for循环中的count初始化为
for ( counter = 2; counter <= 10; counter++) {
printf( "%u\n", counter );
}
C遵循for loops
的以下语法:
for ( init; condition; increment ) {
statement(s);
}
此处的初始化部分是您进行初始化的地方。