Java中的开关大小写语法

Java中的开关大小写语法,java,syntax,switch-statement,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

在这个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();
    }
}
import java.util.Scanner;
公共级开关柜{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
字符串输入=sc.nextLine();
试一试{
int number=Integer.parseInt(输入);
开关(编号){
案例1:
如果(数字<0){
System.out.println(“数字小于0”);
打破
}
案例2:
如果(数字>0){
System.out.println(“数字大于0”);
打破
}
违约:
System.out.println(“数字为0”);
}
}捕获(IllegalArgumentException e){
System.out.println(“请插入有效数字”);
}
sc.close();
}
}
无论输入什么值,输出总是“数字为0”。
谢谢

这些案例标签不用于您的标签目的;它们用于Java比较
number
,以便执行案例

如果
number
1
,它将在
情况1:
的块处开始执行。因为
1
不小于
0
,所以该块不会产生任何输出

如果
number
2
,它将在
情况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.");
}
if(数字<0){
System.out.println(“数字小于0”);
}
否则,如果(数字>0){
System.out.println(“数字大于0”);
}
否则{
System.out.println(“数字为0”);
}

这些箱子标签不是为了给您贴标签;它们用于Java比较
number
,以便执行案例

如果
number
1
,它将在
情况1:
的块处开始执行。因为
1
不小于
0
,所以该块不会产生任何输出

如果
number
2
,它将在
情况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.");
}
if(数字<0){
System.out.println(“数字小于0”);
}
否则,如果(数字>0){
System.out.println(“数字大于0”);
}
否则{
System.out.println(“数字为0”);
}

首先,你知道你能做什么吗
int number=sc.nextInt()您不需要解析输入,它确保用户给您一个int

至于你的开关箱,你的休息;都在if语句中,因此当代码读取break时,它会中断包含它的循环。在您的情况下,它脱离if/else语句,而不是switch语句


希望我能帮忙

首先,你知道你可以做什么吗您不需要解析输入,它确保用户给您一个int

至于你的开关箱,你的休息;都在if语句中,因此当代码读取break时,它会中断包含它的循环。在您的情况下,它脱离if/else语句,而不是switch语句


希望我能帮忙

案例1:
表示数字等于1。但由于1不小于0,您将永远不会看到“数字小于0”,并且您不会中断。(
中断
位于
if(数字<0)
部件内)

案例2:
表示数字等于2。如果输入2,则将输入此案例

这就为您可能输入的所有其他值留下了默认值,我猜这些值大部分都是默认值

在这种情况下,您确实不需要
开关。您应该使用
if-else
构造,如下所示:

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

    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.");
    }
  } catch(IllegalArgumentException e) {
    System.out.println("Please insert a valid number.");
  } finally {
    sc.close();
  }
}
publicstaticvoidmain(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
字符串输入=sc.nextLine();
试一试{
int number=Integer.parseInt(输入);
如果(数字<0){
System.out.println(“数字小于0”);
}否则,如果(数字>0){
System.out.println(“数字大于0”);
}否则{
System.out.println(“数字为0”);
}
}捕获(IllegalArgumentException e){
System.out.println(“请插入有效数字”);
}最后{
sc.close();
}
}

案例1:
表示数字等于1。但由于1不小于0,您将永远不会看到“数字小于0”,并且您不会中断。(
中断
位于
if(数字<0)
部件内)

案例2:
表示数字等于2。如果输入2,则将输入此案例

这就为您可能输入的所有其他值留下了默认值,我猜这些值大部分都是默认值

在这种情况下,您确实不需要
开关。您应该使用
if-else
构造,如下所示:

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

    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.");
    }
  } catch(IllegalArgumentException e) {
    System.out.println("Please insert a valid number.");
  } finally {
    sc.close();
  }
}
publicstaticvoidmain(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
字符串输入=sc.nextLine();
试一试{
int number=Integer.parseInt(输入);
如果(数字<0){
System.out.println(“数字小于0”);
}否则,如果(数字>0){
System.out.println(“数字大于0