2016-12-25 236 views
-3

我可以在switch case语句中使用用户输入语句吗?我可以在switch case语句中使用用户输入语句吗?

这是我的代码。

switch(choice) { 
    System.out.println("Enter First Number"); 
    num1=input.nextInt(); 
    System.out.println("Enter Second Number"); 
    num2=input.nextInt(); 
    case 1: 
     total=num1+num2; 
     System.out.println("Addition of "+num1+" and "+num2+" are "+total); 
     break; 
    case 2: 
     total=num1-num2; 
     System.out.println("Substraction of "+num1+" and "+num2+" are "+total); 
     break; 
    case 3: 
     total=num1*num2; 
     System.out.println("Multiplication of "+num1+" and "+num2+" are "+total); 
     break; 
    case 4: 
     total=num1/num2; 
     System.out.println("Divistion of "+num1+" and "+num2+" are "+total); 
     break; 
    default: 
     System.out.println("Please Choose right option...Try again"); 
     break; 

} 

这在Java中可能吗?

+4

你为什么要这么做?为什么不简单地在switch语句之前获取输入,然后在输入无效的情况下在do-while循环内再次获取输入? –

+0

这是不可能的在switch case语句中? – Mathur

+1

如果编译器说你不能做某件事,那么答案就是你无法做到。 – dasblinkenlight

回答

0

为任何情况下,被分配到用户输入的语句代码将无法工作...
这个东西可以通过甲骨文
给出的定义switch语句的主体被称为开关块被理解。 交换机模块中的语句可以标注一个或多个大小写或默认标签。 switch语句评估其表达式,然后执行匹配大小写标签后面的所有语句。
为你的情况“用户输入语句”未分配给任何情况下,因此编译器会引发错误
但你可以采取用户输入,如果你把用户输入的语句在任何情况下开关块内部
例如:

case 1: 
System.out.println("Enter First Number"); 
    num1=input.nextInt(); 
    System.out.println("Enter Second Number"); 
    num2=input.nextInt(); 
total=num1+num2; 
     System.out.println("Addition of "+num1+" and "+num2+" are "+total); 
     break; 


这工作,因为现在用户输入语句被分配到“案例1”中的开关块...

希望说明帮助的你......

+0

谢谢@anubhav,也谢谢你的描述 – Mathur

+0

欢迎你sirif你满意答案然后你可以通过点击勾选按钮来接受它 –