令牌“{”的语法错误,在此令牌开关(char)之后预期的 SwitchLabels

Syntax error on token "{", SwitchLabels expected after this token-switch (char)

我正在用头撞墙....我是新手...对此非常陌生。我在粗体行 - switch (operator) {.每次我更改它都会失败。

import java.util.Scanner;

public class Assignment2 {
    
public static void main(String[] args) {
        // Prompt for 2 numbers and a symbol
        
    Scanner scan = new Scanner(System.in);
    
    //Prompt for input
    System.out.println("Enter a number: ");
    double num1 = scan.nextDouble();
    System.out.println("Enter a number: ");
    double num2 = scan.nextDouble();
    System.out.println("Enter + - * or /");
    char operator = scan.next().charAt(0);
    
    switch (operator) {
    
    /*previous attempt
    //if (operator == "+") 
    //  System.out.println(num1 + "+" + num2 + "=" + (num1+num2));
    // else if (operator == "-")
    //  System.out.println(num1 - num2);
    // else if (operator == "*")
    //  System.out.println(num1 * num2);
    // else if (operator == "/")
    //  System.out.println(num1 / num2); */
    
    double answer;
    
    case "+":
        answer = num1 + num2;
        System.out.println(num1 + "+" +num2 + "=" + answer);
        break;
    
    case "-":
        answer = num1 - num2;
        System.out.println(num1 + "-" +num2 + "=" + answer);
        break;
    
    case "*":
        answer = num1 * num2;
        System.out.println(num1 + "*" +num2 + "=" + answer);
        break;
    
    case "/":
        answer = num1 / num2;
        System.out.println(num1 + "*" +num2 + "=" + answer);
        break;
        
    
    //reject all others
    default:
        System.out.println("Error: Not a valid symbol!");
        break;
    }
    
    scan.close();           
  }

}

你不能在那里定义变量,把行 double answer; 放在 switch (operator) {

之前

您将 operator 阅读为 char,而在 switch case 中您将它们用作 string。下面的代码应该适合你。

import java.util.Scanner;

public class Assignment2 {

public static void main(String[] args) { // Prompt for 2 numbers and a symbol

    Scanner scan = new Scanner(System.in);
    

    //Prompt for input
    System.out.println("Enter a number: ");
    double num1 = scan.nextDouble();
    System.out.println("Enter a number: ");
    double num2 = scan.nextDouble();
    System.out.println("Enter + - * or /");
    char operator = scan.next().charAt(0);
        double answer;
    switch (operator) {
    
    /*previous attempt
    //if (operator == "+") 
    //  System.out.println(num1 + "+" + num2 + "=" + (num1+num2));
    // else if (operator == "-")
    //  System.out.println(num1 - num2);
    // else if (operator == "*")
    //  System.out.println(num1 * num2);
    // else if (operator == "/")
    //  System.out.println(num1 / num2); */
    

    
    case '+':
        answer = num1 + num2;
        System.out.println(num1 + "+" +num2 + "=" + answer);
        break;
    
    case '-':
        answer = num1 - num2;
        System.out.println(num1 + "-" +num2 + "=" + answer);
        break;
    
    case '*':
        answer = num1 * num2;
        System.out.println(num1 + "*" +num2 + "=" + answer);
        break;
    
    case '/':
        answer = num1 / num2;
        System.out.println(num1 + "*" +num2 + "=" + answer);
        break;
        
    
    //reject all others
    default:
        System.out.println("Error: Not a valid symbol!");
        break;
    }
    
    scan.close();
            
}
}

试试这个



import java.util.Scanner;

public class Assignment2 {

    public static void main(String[] args) { // Prompt for 2 numbers and a symbol

        Scanner scan = new Scanner(System.in);


        //Prompt for input
        System.out.println("Enter a number: ");
        double num1 = scan.nextDouble();
        System.out.println("Enter a number: ");
        double num2 = scan.nextDouble();
        System.out.println("Enter + - * or /");
        char operator = scan.next().charAt(0);


        double answer;
        switch (operator) {
            case '+':
                answer = num1 + num2;
                System.out.println(num1 + "+" + num2 + "=" + answer);
                break;

            case '-':
                answer = num1 - num2;
                System.out.println(num1 + "-" + num2 + "=" + answer);
                break;

            case '*':
                answer = num1 * num2;
                System.out.println(num1 + "*" + num2 + "=" + answer);
                break;

            case '/':
                answer = num1 / num2;
                System.out.println(num1 + "*" + num2 + "=" + answer);
                break;


            //reject all others
            default:
                System.out.println("Error: Not a valid symbol!");
                break;
        }

        scan.close();

    }
}