当前位置:编程学习 > JAVA >>

菜鸟-求教-各位大虾

各位大虾 俺这个菜鸟又有问题求教了。
public class Test1{
  public static void main(String[] args){
     Test1 t=new Test1();
         t.play();
         t.tiger();
  }

  public void play(){

 int r,j,i;
 for(i=1;i<1000;i++){
  r=0;
  for(j=1;j<i;j++){
  if(i%j==0){
  r+=j;
  }
  }
  if(r==i){
  System.out.print(r+"  ");
  }
 }
  
    }
    
    public void tiger(){
     int r=0;
     for(int i=1;i<1000;i++){
    
     for(int j=1;j<i;j++){
     if(i%j==0){
        r+=j;
     }
    
     }
     if(r==i){
       System.out.print(r+"  ");
  }
     }
    }
}


这两个方法基本上完全一样,但是就r的定义不同(一个在方法内,一个在for{}内),就出现两个结果,很纠结啊!! 请各位大虾帮帮忙,谢谢! --------------------编程问答-------------------- 这两个是不可能一样的,play中每次外层循环重新开始的时候r都被重新置0了;而另外一个则不然 --------------------编程问答-------------------- 楼上正解! --------------------编程问答-------------------- 1楼的说法是对的。当i=2开始运算的时候play()中r=0;另外一个等于1 --------------------编程问答-------------------- 顶楼上的!
补充:Java ,  Java相关
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,