#include <iostream>
using namespace std;
int main()
{
int x = 0;
for int (i=0; i<100; i++)
if (i%9 == 0) x = i;
else x = -1;
cout << x;
return 0;
}
这段代码返回值99。
当我逐行阅读时,我理解为这样。
在for循环的第一步中,i被赋值为0. 0除以9等于0,其中包含if语句的条件,那么为什么不打印出x等于0而不是99 ?
答案 0 :(得分:2)
1)声明变量
x
;为它赋值0.
#include <iostream>
int main()
{
int x=0;
}
2)对于
i = 0
,i
小于100,将i
增加1。
#include <iostream>
int main()
{
int x=0;
for(int i=0; i<100; i++) {};
}
3)如果
i/9
的余数等于0,请将i
的值指定为x
。
#include <iostream>
int main()
{
int x=0;
for(int i=0; i<100; i++)
{
if(i%9==0)
{
x = i;
}
};
}
4)如果没有设置,
x
应该等于-1:
#include <iostream>
int main()
{
int x=0;
for(int i=0; i<100; i++)
{
if(i%9==0)
{
x = i;
}
else
{
x = -1;
}
};
}
5)打印
x
#include <iostream>
int main()
{
int x=0;
for(int i=0; i<100; i++)
{
if(i%9==0)
{
x = i;
}
else
{
x = -1;
}
};
std::cout << x << std::endl;
}
最后一个的DEMO。
答案 1 :(得分:0)
输出正确。每次循环时,x
都会获得i
的值或值-1
。通过循环的最后一次,i == 99
和i % 9
确实为0,因此为x
分配值99
。然后i
获取值100
,循环退出,程序的其余部分打印x
的当前值,即99
。
请注意,if/else
是for
循环的正文。由于i%9
中if
为0,因此循环不会退出。
答案 2 :(得分:0)
只有for
循环之后的单个语句在for循环中。请注意,if ... else ...
是一个语句(包含其他语句)。
完全相同的代码应更好地写为:
int main()
{
int x = 0;
for (int i=0; i<100; i++)
{
if (i%9 == 0)
x = i;
else
x = -1;
}
cout << x;
return 0;
}
现在应该很容易理解为什么在循环结束之前没有打印任何内容。