来自Kochan的“C编程”:
输入:
printf ("TABLE OF TRIANGULAR NUMBERS\n\n");
printf (" n Sum from 1 to n\n");
printf ("--- ---------------\n");
triangularNumber = 0;
for(n=1; n<=10; ++n){
triangularNumber += n;
 printf (" %i", n);
}
输出(仅部分粘贴):
三角数表
n = 1
从1到n = 1的总和
n = 2
从1到n = 2的总和
问题:
我理解这个的目的,但这里是我无法理解的:如果在循环内我们将初始值“1”分配给“n”,那么我们检查n&lt; = 10,并且如果那是真的(它应该是初始值),那么我们将n加“1”。不应该(我知道它不应该,只是不明白为什么)我们表中显示的初始值是n = 2?
提前感谢您的耐心和努力!
答案 0 :(得分:4)
++n
在循环体运行之后发生,而不是之前。
for(n=1; n<=10; ++n){
triangularNumber += n;
 printf (" %i", n);
}
相当于:
n=1; // happen before the loop
while(n<=10){ // becomes the conditional test
triangularNumber += n;
 printf (" %i", n);
++n; // happens at the end of the list
}