在Java中切换案例语法

0 java syntax switch-statement

似乎无法在此switch语句中找到语法错​​误.任何帮助深表感谢.

源代码:

import java.util.Scanner;

public class SwitchCasing {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        try {
            int number = Integer.parseInt(input);

            switch(number) {
                case 1:
                    if(number < 0) {
                        System.out.println("Number is smaller than 0.");
                        break;
                    }
                case 2: 
                    if(number > 0){
                        System.out.println("Number is greater than 0.");
                        break;
                    }
                default:
                    System.out.println("Number is 0.");
            }
        } catch(IllegalArgumentException e) {
            System.out.println("Please insert a valid number.");
        }
        sc.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

无论输入什么值,输出始终为"数字为0".谢谢!

rge*_*man 6

这些案例标签不适合您的标签; 它们用于比较Java,number因此它可以执行大小写.

case 1:如果number是,它将在块处开始执行1.因为1不小于0,该块不会产生任何输出.

case 2:如果number是,它将在块处开始执行2.因为1不小于0,该块将产生输出"Number大于0".

即使您的输出不正确,任何其他数字将转到默认大小写并产生输出"Number is 0".

您无法使用switch语句测试这种情况.将其更改为等效的if/else构造.

if(number < 0){
    System.out.println("Number is smaller than 0.");
}
else if(number > 0){
    System.out.println("Number is greater than 0.");
}
else {
    System.out.println("Number is 0.");
}
Run Code Online (Sandbox Code Playgroud)