2014-11-16 2 views
0

시스템 종료는 프로그램이 끝나면 발생하지만 inner while 루프와 똑같이 작동합니다. 어떤 제안이라도 환영합니다. 여기에 내가 오류 메시지입니다 :무한 while 루프로 인해 Java가 throw되는 경우 NoSuchElementException

Exception in thread "main" java.util.NoSuchElementException 
at java.util.Scanner.throwFor(Scanner.java:907) 
at java.util.Scanner.next(Scanner.java:1530) 
at java.util.Scanner.nextInt(Scanner.java:2160) 
at java.util.Scanner.nextInt(Scanner.java:2119) 
at beast.main(beast.java:75) 

것은 여기에 내 코드 좋아요

while(loopkey==1){//Call Methods and enables user to pick another exercise 
    UserManual(); 
    System.out.print("Input the topickey here: ");//prompts for topic 
    int topickey=kbd.nextInt();//scans topickey(which is an int) 

    if(topickey==1)DoAdditionEx(j);//does addition 
    else if(topickey==2)DoSubtractionEx(j);//does subtraction 
    else if(topickey==3)DoMultiplicationEx(j);//does multiplication 
    else{ 
     int errorkey=1; 
     while(errorkey==1){ 
      System.out.print("ERROR: COMMAND NOT RECONGISED\nPlease reselect your topic of interest: "); 
      topickey=kbd.nextInt(); 
      if(topickey==1 || topickey==2 || topickey==3) errorkey=0; 
     } 
    } 
    if(topickey==1)DoAdditionEx(j);//does addition 
    else if(topickey==2)DoSubtractionEx(j);//does subtraction 
    else if(topickey==3)DoMultiplicationEx(j);//does multiplication 

    System.out.println("Would you like to continue practicing? Please enter '1' for yes or '0' for no."); 
    System.out.print("Input your choice here: "); 

    int multitopickey=kbd.nextInt(); 
    if(multitopickey!=1) loopkey=0; 
} 
+0

'nextInt()'를 호출하기 전에'hasNextInt()'를 호출해야합니다. 그렇지 않으면'스캐너 '에서'InputMismatchException'을 얻습니다. –

+0

hasNextInt()에 익숙하지 않습니다. (아직 Java에서 새로 도입되었습니다.) 코드 수정이 가능하여 수정 방법을 알 수 있습니까? –

+0

스택 추적이 불완전합니다. 오류를 붙여 넣을 때 관련 세부 사항을 포함시켜야합니다. 디버깅 할 때 시간을 절약 할 수 있습니다. 예를 들어, 던져진 실제 예외 유형을 생략했습니다. 실제로 깨는 코드 비트는 포함하지 않았습니다. 여기서 스캐너를 참조하지는 않습니다. –

답변

0

, 그래서 내가이 문제를 해결했다. 내가 포함하지 않은 코드 중 일부는 (얼마나 오래 되었기 때문에), 나는 (내 방법에서) 의도 한 것보다 빨리 스캐너를 닫았다. 스레드 "주요"java.util.NoSuchElementException에

예외 -이 문제가

누구를, 당신의 스캐너를 확인 : 이러한 오류가를 가져올 것입니다. 관심을 가져 주신 모든 분들께 감사드립니다!

관련 문제