为什么第一个会少计算了100
#include
using namespace std;
void main()
{
int sum = 0;
int i;
for (i = 1;i <= 100; sum += i,i++)
cout << "sum=" << sum << endl;
}
#include
using namespace std;
void main()
{
int sum = 0;
int i;
for (i = 1;i <= 100; i++)
sum += i;
cout << "sum=" << sum << endl;
}
for拆开步骤是
step1:初始化i=1;
step2:判断i<=100
step3:执行for内容
step4:调整sum+=i,i++
所以
for (i = 1;i <= 100; sum += i,i++)
cout << "sum=" << sum << endl;
会先执行cout << "sum=" << sum << endl,再sum+=i,再i++
循环100次
for (i = 1;i <= 100; i++)
sum += i;
cout << "sum=" << sum << endl;
会先执行sum+=i,循环100次后,再执行一次cout << "sum=" << sum << endl;
结果肯定不一样了
建议写的时候,把花括号打上,这样的风格除了显示自己写乱序代码牛掰以外,没有任何用处
其实第一个程序,sum最终是加了100; 只是没打印出来而已,你可以在底下再加一行,就可以看到了
int sum = 0;
int i;
for (i = 1;i <= 100; sum += i,i++)
cout << "sum=" << sum << endl;
cout << "sum=" << sum << endl;
return 0;
你在for后加上花括号是不是明白点了,100次的执行了输出语句,101次跳出,另一个是101次的时候跳出i已经加了输出语句在外边执行了一遍