#java #switch-statement
#java #switch-statement
Вопрос:
Как мне избежать ошибки в операторе switch в «по умолчанию»?Этот случай переключения написан в соответствии с новыми стандартами.
import java.util.Scanner;
public class SwitchCase {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Choose option: ");
char userChoice = scan.next().charAt(0);
switch (userChoice) {
case '1' -> System.out.println("1 funkcja");
case '2' -> System.out.println("2 funkcja");
default ->
if((!Character.isDigit(userChoice))||(userChoice>3)){ #this part throws an error below:
System.out.println("Input error");
}
}
scan.close();
}
}
Ошибка:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Syntax error, insert "ThrowExpression ;" to complete SwitchLabeledThrowStatement
Syntax error, insert "}" to complete SwitchBlock
Syntax error on token "}", delete this token
at SwitchCase.main(SwitchCase.java:11)
Комментарии:
1.
default -> { /* if statement */ }
Ответ №1:
Проверьте это: вам нужно использовать: для случаев переключения. Мы сравниваем UserChoice, который равен char, с 3 (int).
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Choose option: ");
char userChoice = scan.next().charAt(0);
switch (userChoice) {
case '1': System.out.println("1 funkcja");
case '2': System.out.println("2 funkcja");
default:
if(!Character.isDigit(userChoice)||(Integer.parseInt(String.valueOf(userChoice))>3)){ //#this part throws an error below:
System.out.println(userChoice " Input error");
}
}
scan.close();
}