2014-10-02 2 views
0

코드는 컴파일러에 오류가 표시되지하지만 코드 실행 및 루프가 요구 사항을 충족 할 때 여기 논스톱 메시지 http://i62.tinypic.com/23if4uv.pngwhile 루프의 런타임 오류를 수정하는 방법은 무엇입니까?

도 여기에 사진을 인쇄를 계속 내가 사용하는 코드입니다 :

Scanner keyb = new Scanner(System.in); 
int numbg = (int) (100*Math.random())+1; 
String one = "That was lucky!"; 
String twofour="That was amazing!"; 
String fivesix= "That was good."; 
String seven= "That was okay"; 
String enine = "That was not versy good"; 
String tm= "That just insn't your game"; 
System.out.println("Enter a guess between 1 and 100: "); 
int numbu = keyb.nextInt(); 
int wrong = 0; 
while (numbg != numbu) { 
    if (numbu < numbg) { 
     System.out.println("Your guess too low. Try again. "); 
     wrong++; 
     System.out.println("Enter a guess between 1 and 100: "); 
     numbu=keyb.nextInt(); 
    } 
    else if (numbu > numbg && numbu <= 100) { 
     System.out.println("Your guess too high. Try again."); 
     wrong++; 
     System.out.println("Enter a guess between 1 and 100: "); 
     numbu=keyb.nextInt(); 
    } 
    else if (numbu > 100) { 
     System.out.println("Your guess is out of range. Pick a number betwen 1 and 100"); 
     numbu=keyb.nextInt(); 
    } 
    while (numbg == numbu) { 
     if (wrong >= 1) { 
      System.out.println(one); 
     } 
     else if (wrong >= 2 && wrong <= 4) { 
      System.out.println(twofour); 
     } 
     else if (wrong >= 5 && wrong <= 6){ 
      System.out.println(fivesix); 
     } 
     else if (wrong == 7) { 
      System.out.println(seven); 
     } 
     else if (wrong >=8 && wrong <= 9){ 
      System.out.println(enine); 
     } 
     else if (wrong >= 10) { 
      System.out.println(tm); 
     } 
    } 
} 
+2

이 문제에 대해서는 디버거 사용을 권장합니다. – PsyCode

+5

'while (numbg == numbu)'루프를 입력하면 numbg 및 numbu 중 어느 것도 변경되지 않으므로 절대로 빠져 나올 수 없습니다. 따라서 루프가 종료되지 않는 것은 당연합니다. 'numbg = 0; numbu = 1'을 루프의 범위 끝에서 찾은 다음, 여전히 동일한 문제가 있는지 확인하십시오. – hoefling

+0

@ Mr.Yetti 이제 삭제를 변경하고 수정 – Joscoth

답변

0

요구 사항이 항상 충족되므로 보유한 while 루프가 종료되지 않습니다. 나는 단지 if 문을 사용하여 한 번만 검사 할 것이고 요구 사항을 충족 시키면 한 번만 문자열을 말할 것입니다. 또한, while 루프에 있던 if 문과 if else 문을 모두 변경해야합니다.이 문은> = 대신 (잘못된 < = number)로 변경해야합니다. 그 이유는 해당 조건이 항상 참일 수 있기 때문입니다. 그 숫자 대신에 그것을 찾거나 덜 찾습니다.

+0

...로 시작하여 고쳐주었습니다. 첫 번째 if 문을 수정하십시오. – spudone

+0

@spudone 어떻게 if 문이 잘못 되었습니까? – PsyCode

+1

if (wrong> = 1)는 다른 조건들 이전에 항상 참입니다. – spudone

관련 문제