2011-09-07 71 views
-1

我试图让程序计算出前四个完美数字。它编译,但是当我运行该程序时,for循环似乎是不可见的。就像我查看调试器时一样,它看起来只是跳过了for循环,变量不存在。我的for循环似乎是不可见的

public static void main(String[] args) 
{ 
    int pNum = 2; // starting number to check 
    int sum = 0; 

    for (int count = 1; count <= 4; count++) 
    { 
     for (int factor = 1; factor < pNum; factor++) 
     { 
      if (pNum % factor == 0) 
       sum += factor; 
     } 

     if (pNum == sum) 
     { 
      System.out.println(pNum + " is a perfect number."); 
      count++; 
     } 

     pNum++; sum = 0; 
    } 
} 
+0

现在,它的工作原理。非常感谢! 编辑:克里斯的评论似乎已经消失了(我是否意外删除它?),但这是因为我递增了两次计数++。 – CowZow

+0

所以我用一个while循环替换了第一个for循环 – CowZow

回答

0
count = 1, pNum = 2, sum = 0 
factor = 1, sum = 0 
count = 2, pNum = 3, sum = 0 
factor = 1, sum = 0 
factor = 2, sum = 1 
count = 3, pNum = 4, sum = 0 
factor = 1, sum = 0 
factor = 2, sum = 1 
factor = 3, sum = 3 
count = 4, pNum = 5, sum = 0 
factor = 1, sum = 0 
factor = 2, sum = 1 
factor = 3, sum = 1 
factor = 4, sum = 1 
0

我觉得你的调试器出毛病了,尝试printoutput来检查循环工作

for(int count = 1; count <= 4; count++){ 
    System.out.println("count:"+count);