2013-10-14 3 views
-1

여기까지 제가 작성한 코드가 있습니다. 각 마우스와 래트가 해결 한 합계를 추가하고 싶지만 잘못 표시된 것이 있습니다.For 루프에서 결과를 어떻게 추가 할 수 있습니까? Java

마우스 1이 몇 개의 미로를 해결 했습니까? 4

마우스 2는 몇 개의 미로를 해결 했습니까? 0

마우스 3은 몇 개의 미로를 해결 했습니까? 1

마우스 4는 몇 개의 미로를 해결 했습니까? 4

쥐 1 마리가 몇 개의 미로를 풀었습니까? 2

쥐 2 마리가 몇 개의 미로를 풀었습니까? 3

몇 마리의 미로가 해결 되었습니까? 0

쥐 4 마리가 몇 개의 미로를 해결 했습니까? 4

마우스가 8 번 해결되었습니다.

mouseSolved = randomGenerator.nextInt(5); 

는 루프를 통해 임의의 숫자에 때마다 당신의 수를 재설정입니다 : 그리고 쥐 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을 사용하고 있습니다. 여러분은 이것을 사용하여 해결 된 총 미로의 수를 저장하고 루프의 매 반복마다 해결되는 미로의 수를 저장하는 데 사용하고 있습니다. 둘 다 할 수는 없습니다. 이 두 가지 아이디어를 처리하려면 mouseSolvedTotalmouseSolvedCurrent과 같은 두 개의 변수가 필요합니다.

+0

내가 다른 변수를 추가 해봤지만 여전히 같은 'mouseSolved = randomGenerator.nextInt (5); \t \t \t \t \t \t에서 System.out.println는 (+ mouseTest +? "해결"+ mouseSolved "얼마나 많은 미로는 마우스를했다"); mouseTotalmaze = mouseSolved; mouseTotalmaze = mouseSolved + mouseSolved; – AbbenGabben

+0

'mouseTotalmaze = mouseSolved + mouseSolved; '해결 된 값을 두 번 더하는 것입니다. 좋지 않습니다. –

관련 문제