2011-09-07 23 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); 
相關問題