2013-10-14 41 views
-1

下面是我寫的代碼,我想添加每個鼠標和鼠標解決的總數,但它顯示的數量不正確。如何添加For循環的結果 - Java

鼠標1解決多少個迷宮? 4

鼠標2解決了多少個迷宮? 0

鼠標3解決多少個迷宮? 1

鼠標4解決多少迷宮? 4

大鼠1解決了多少個迷宮? 2

大鼠2解決了多少個迷宮? 3

大鼠3解決了多少個迷宮? 0

大鼠4解決了多少個迷宮? 4

老鼠解決了8。而老鼠解決8

import java.util.Random; 

public class ratloop { 

public static void main(String[] args) { 
     mazeRun(); 
     System.exit(0); 
            } 
     public static void mazeRun() 
     { 
      Random randomGenerator = new Random(); 
      int mouseTest; 
      int mouseSolved = 1; 
      for (mouseTest= 1; mouseTest <=4; mouseTest++) 
       { 
        mouseSolved = randomGenerator.nextInt(5); 
        System.out.println("How many mazes did mouse " + mouseTest + " solve? " + mouseSolved); 
        mouseSolved = mouseSolved + mouseTest; 
       } 

       int ratTest; 
       int ratSolved = 1; 
       for (ratTest= 1; ratTest <=4; ratTest++) 
       { 
        ratSolved = randomGenerator.nextInt(5); 
        System.out.println("How many mazes did rat " + ratTest + " solve? " + ratSolved); 
        ratSolved = ratSolved + ratTest;  
       } 

       System.out.println("The mouse solved " + mouseSolved + " . And the rats solved " + ratSolved); 

     } 

} 

回答

1

如果要在循環中添加數字,請不要將循環索引與正在操作的數字混合。

int mouseSolvedTotal = 0; 
for (int mouseTest = 1; mouseTest <= 4; mouseTest++) { 
    int mouseSolved = randomGenerator.nextInt(5); 
    System.out.println("How many mazes did mouse " + mouseTest + " solve? " + mouseSolved); 
    mouseSolvedTotal += mouseSolved; 
} 

int ratSolvedTotal = 0; 
for (int ratTest= 1; ratTest <= 4; ratTest++) { 
    int ratSolved = randomGenerator.nextInt(5); 
    System.out.println("How many mazes did rat " + ratTest + " solve? " + ratSolved); 
    ratSolvedTotal += ratSolved;  
} 
+0

我明白我現在做錯了什麼。該計劃顯示正確的總數。謝謝! – AbbenGabben

0

這條線:

mouseSolved = randomGenerator.nextInt(5); 

是通過循環每次重新設定你的計數的隨機數。你會想使用一個不同的變量。

造成您麻煩的部分原因是您使用mouseSolved來做兩件事。您正在使用它來存儲已解決的迷宮總數,並且您正在使用它來存儲每次迭代循環中解決的迷宮數量。它不能做這兩個。您需要兩個變量,如mouseSolvedTotalmouseSolvedCurrent來處理這兩個想法。

+0

我試圖加入一個不同的變量,但它仍然是相同的 'mouseSolved = randomGenerator.nextInt(5); (「鼠標有多少個迷宮」+ mouseTest +「solve?」+ mouseSolved); mouseTotalmaze = mouseSolved; mouseTotalmaze = mouseSolved + mouseSolved;' – AbbenGabben

+0

'mouseTotalmaze = mouseSolved + mouseSolved;'這是兩次添加解決的值,這是不好的。 –