老师,你好,我想请教个问题。
int x , y;
for (y = 1; y <= 1000; y++) {
x=0;
for (int z = 1; z < y; z++) {
if (y % z == 0) {
x = x + z;
}
}
if (y == x) {
System.out.println(x);
}
为什么这个可以,而下面这个不可以
int x =0, y;
for (y = 1; y <= 1000; y++) {
for (int z = 1; z < y; z++) {
if (y % z == 0) {
x = x + z;
}
}
if (y == x) {
System.out.println(x);
}
}
A monologue_1486542496 发表于2017-02-12 19:35
老师,你好,我想请教个问题。
int x , y;
for (y = 1; y <= 1000; y++) {
x=0;
for (int z = 1; z < y; z++) {
if (y % z == 0) {
x = x + z;
}
}
if (y == x) {
System.out.println(x);
}
为什么这个可以,而下面这个不可以
int x =0, y;
for (y = 1; y <= 1000; y++) {
for (int z = 1; z < y; z++) {
if (y % z == 0) {
x = x + z;
}
}
if (y == x) {
System.out.println(x);
}
}
上面的代码中,外层循环每循环一次,x的值都会变成0,而下面的代码中只有最开始给x赋值,之后x的值一直在增加。