package y;
public class y12 {
public static void main(String[] args) {
int s=0;
for(int i=1;i<=1000;i++){
for(int j=1;jif(i%j==0){
s+=j;
}
}if(s==i){
System.out.print(s+"的因子:");
for(int j=1;jif(i%j==0){
System.out.print(j+",");
}
}System.out.println();
}
}
}
}
package y;
public class y12 {
public static void main(String[] args) {
for(int i=1;i<=1000;i++){
int s=0;
for(int j=1;jif(i%j==0){
s+=j;
}
}if(s==i){
System.out.print(s+"的因子:");
for(int j=1;jif(i%j==0){
System.out.print(j+",");
}
}System.out.println();
}
}
}
}
s=0位置不同,就有不同效果,第二个每次循环都会吧s重新赋值为0,而第一个s在循环外边,所以里边都是累加的,不会清0
循环里s不清零看不出来吗
局部变量 s 定义的位置不一样,一个在循环内,一个在循环外,循环内的每次循环都会恢复为0,循环外的则是一直累加
for循环内部的是局部变量,外部的是成员变量,而for循环内部的在执行一次循环后会清零,外部的并不会清零,能不能把执行结果,或者报错截图,放出来,这样,看的更清晰明了