내 코드로 이동하려고하는데 수정 방법을 모르는 오류가 발생했습니다. 코드가 옵션을 묻는 지점에 도달하면 입력 할 때 사용자가 입력 한 '문자 S'또는 '문자 T'를 인쇄하고 싶습니다. Pls는 두 가지를 염두에두고 있습니다. 1) "char getOption()"메소드를 사용해야하고 2) 나는 이것에 대해 새롭다. 내가 얻는 오류는 다음과 같습니다.getOption이 작동하지 않음, 상수 오류
미리 감사드립니다.
import java.util.Scanner;
public class shapes {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
displayWelcome();
displayMenu();
char resp = getOption();
if(resp == 'S')
System.out.println("This is letter S");
else if(resp == 'T')
System.out.println("This is letter T");
}
public static void displayWelcome() {
System.out.println("WELCOME TO THE SHAPE PRINTER!");
System.out.println("-----------------------------");
}
public static void displayMenu() {
System.out.println("Options: ");
System.out.println(" S)quare");
System.out.println(" H) Shape");
System.out.println(" T)riangle");
System.out.println(" X) Shape");
System.out.println(" Q)uit");
}
public static char getOption() {
Scanner input = new Scanner(System.in);
input.nextInt();
char c = input.next().charAt(0);
return c;
}
} 스레드에서
// 예외 "주"java.util.InputMismatchException java.util.Scanner.throwFor에서 // (Scanner.java:864) 자바에서
//. util.Scanner.next (Scanner.java:1485)
// java.util.Scanner.nextInt (Scanner.java:2117)
// java.util.Scanner.nextInt (Scanner.java:2076)
// 셰이프에서 .getOption (shapes.java:60)
// 셰이프 .main (shap es.java:27)
이 줄에 대한 모든 이유 input.nextInt(); ? –
나는 char/Strings와 Int/Doubles의 스캐너 사이의 버퍼를 지워야한다고 들었다. – aycajr
nextInt는 int 입력을 기다리고 어떤 종류의 버퍼도 지우지 않는다. 그것을 제거하려고합니다. –