switch语句在Java中的使用
我得到了一个例子,数字a只能是1,2,3或4。然后我用它来构建一个开关块,如:switch语句在Java中的使用,java,switch-statement,Java,Switch Statement,我得到了一个例子,数字a只能是1,2,3或4。然后我用它来构建一个开关块,如: switch (metadata.getValueType()) { case 1: method1(); break; case 2: method2(); break; case 3: method3(); break; case 4: method4(); } 但是我
switch (metadata.getValueType()) {
case 1:
method1();
break;
case 2:
method2();
break;
case 3:
method3();
break;
case 4:
method4();
}
但是我知道在没有默认值的情况下编写开关块不是一个好习惯,对吗?因此,我想在案例4
之后添加一个默认值
。但我可以确定,除了1、2、3和4之外,没有其他情况。我应该在默认值中写什么
最佳做法是什么?我可以在案例4中不写任何内容,如下所示:
switch (metadata.getValueType()) {
case 1:
method1();
break;
case 2:
method2();
break;
case 3:
method3();
break;
case 4:
default:
method4();
}
是的,没有默认值的switch语句很难看。因此,您可以简单地删除案例4并用默认值替换它。正如你所说,你正好有4个病例。所以,如果不是1或2或3。。。四点。
但我希望通过使用4个case来保留代码,并在default body中打印一些错误消息。如您所述,如果输入将是1,2,3和4,则可以使用default而不是case 4。如果给定的输入不是1,2和3,则默认为4 无论您使用何种语言,我总是使用默认子句
事情可以也确实会出错。这些值将不是您期望的值,以此类推
switch (myVar) {
case 1: ......; break;
case 2: ......; break;
default: throw new RuntimeException("myVar invalid " + myVar);
}
我建议对无效值引发异常:
default:
throw new IllegalArgumentException("Invalid type: " + metadata.getValueType());
如果我正确理解你的问题
存在默认开关选项是最佳做法,因为它将捕获任何预期值(即使它们无效:5、6、7等)以及意外值。这允许您控制在任何有效值之外的值击中开关时发生的情况。要回答您的问题,您只需在默认情况下添加一个break语句,该语句除了退出开关外什么也不做
switch (metadata.getValueType()) {
case 1:
method1();
break;
case 2:
method2();
break;
case 3:
method3();
break;
case 4:
method4();
break;
default:
break;
}
您好,最好同时声明case4和default,但它正在工作。
导入java.util.*;
公共类HelloWorld{
public static void main(String[] args) {
Scanner sb = new Scanner(System.in);
int choice;
System.out.println("Enter Your Choice :");
choice = sb.nextInt();
switch (choice) {
case 1:
method1();
break;
case 2:
method2();
break;
case 3:
method1();
break;
case 4:
default:
method4();
break;
}
}
public static void method1() {
System.out.println("Hello Method 1");
}
public static void method2() {
System.out.println("Hello Metho 2");
}
public static void method3() {
System.out.println("Hello Method 3");
}
public static void method4() {
System.out.println("Hello Method 4 a default method ");
}
}如果案例不是指定的案例,则打印错误,因为它只能是1、2、3或4(您向我们提供的先决条件),或者如果您有一个方法需要在没有案例发生时运行,等等。。有很多可能性,只要选择一个适合你的,你就可以抛出一个异常。例如,IllegalArgumentException
如果您这样写,我们可能会认为您将4视为默认值