Как избежать ошибки в условии по умолчанию в инструкции switch по-новому Java

#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();
       
   }