2012-02-24 1 views
0

다음 코드 단편이 있지만 실행시 다이 값을 인쇄하지 않습니다.스캐너 클래스를 사용하여 입력 할 때 문자열이 인쇄되지 않습니다.

System.out.println("Player 1s Go.\nEnter R to Roll and H to Hold"); 
input = scanner.next(); 
while (input.equals("R")) { 
    input = scanner.next(); 
    die.throwDie(); 
    System.out.println("Value on Die: " + die.getFaceValue()); 
    if (rolledOne()) { 
     player1Rolled.clear(); 
     System.out.println("Player 1 scored 0, End of turn"); 
     holdPlayer1 = true; 
     holdPlayer2 = false; 
     break; 
    } else { 
     player1Rolled.add(die.getFaceValue()); 
    } 
} 

getFaceValue() 다이의 값을 반환 다이 클래스에 대한 접근 방법 : 여기

소스 코드이다. throwDie()은 값을 변경하고 다이의 롤링을 시뮬레이션하는 변형 방법입니다. 이 두 번 압연하지만 두 번째 롤의 값에서 인쇄하고, 내가 두 번 롤 말할 필요

Player 1s Go. 
Enter R to Roll and H to Hold 
*R 
R* 
Value on Die: 5 
*R* 
Value on Die: 5 
*R* 

주의 사항 :

내가 얻을 출력은 다음과 같다.

+3

문제는 무엇입니까? – Steven

+3

코드에서 다이의 값을 출력하지 않고 샘플 출력에 나온 것처럼 보입니다. – mcfinnigan

+0

내 편집을 참조하십시오. 처음에는 두 번 굴려 야합니다. – Dean

답변

1

scanner.next() 번으로 전화하십시오. 루프 바깥 쪽에서 한 번. 첫 번째 입력이 "R"이면 while 루프로 들어가고 즉시 새 입력을 기다립니다.

루프가 끝나기 전에 input = scanner.next();으로 이동하는 것이 아니라 내가 원하는 동작을 제공해야한다고 생각합니다.

+0

예 저는 잠 들어 있습니다. 입력 내용이 변경되지 않았기 때문에 입력했는지 알지 못했습니다. 그러나 나는 그것을 틀린 장소에 놓았다. – Dean

관련 문제