C++简单for循环求助
#include <iostream>using namespace std;
int main()
{
cout << "Enter the starting countdown value:"; //countdown:倒数读秒 (输入开始倒计时的值)
int limit,i;
cin >> limit;
for (i = limit; i; i--)
cout << "i=" << i << "\n";
cout << "Done now that i=" << i << "\n";
return 0;
}
for循环,测试表达式的那个i是起什么作用,为什么最后在0结束 i 在 1 结束,而你最后是在循环外面打印 i,(虽然循环结束条件已经成立了,但最后i还自减一,1 - 1 = 0) for (i = limit; i; i--)
第一个表达式i=limit也就是i=你输入的数
第二个表达式只要i>0为真,i<=0为假,也就是说i>0 for语句就会运行
第三个i--,就是可以理解为先自减后判断
--i意思是先判断后自减
你可以执行以下语句看看:
char n=0,i=10;
printf("现在执行的是i--,目前n=%d,i=%d\n",n,i);
for ( i =i; i>=0 ; i--) {
n++;
printf("第%d次执行,i=%d\n",n,i);
}
printf("执行完毕,i=%d\n",i);
n=0,i=10;
printf("现在执行的是--i,目前n=%d,i=%d\n",n,i);
for (i=i; i>=0; --i) {
n++;
printf("第%d次执行,i=%d\n",n,i);
}
printf("执行完毕,i=%d\n",i);
页:
[1]