Scanner input = new Scanner(System.in);
System.out.println("please choose the operator");
System.out.println("1-->+ \n2-->- \n3-->* \n4-->/");
int z = input.nextInt();
switch (z) {
case 1:
System.out.println("your result is" + (x + y));
break;
case 2:
System.out.println("your result is" + (x - y));
break;
case 3:
System.out.println("your result is" + (x * y));
break;
case 4:
System.out.println("your result is" + (x / y));
break;
default:
System.out.println("choose the option from listed above");
break;
}
以上代码适用于交换机中的计算器... 查询是: 如何在默认情况下再次调用开关功能?
答案 0 :(得分:1)
好吧,你不能再次执行switch
语句,因为这不能解决问题。 z
的值不会更改,因此无论您重新执行switch
多少次,它都将始终转到默认分支。
我建议将整个事情放在一个循环中,然后在1-4的情况下摆脱循环。
loop:
while (true) {
Scanner input=new Scanner(System.in);
System.out.println("please choose the operator");
System.out.println("1-->+ \n2-->- \n3-->* \n4-->/");
int z=input.nextInt();
switch(z)
{
case 1 :
System.out.println("your result is"+(x+ y));
break loop;
case 2 :
System.out.println("your result is"+(x- y));
break loop;
case 3 :
System.out.println("your result is"+(x* y));
break loop;
case 4 :
System.out.println("your result is"+(x/ y));
break loop;
default :
System.out.println("choose the option from listed above");
break;
}
}
请注意,我写了break loop
而不是break
。 break
将突破switch语句。这就是为什么我在循环开始之前添加了一个标签loop:
,以便我可以在以后突破循环,而不是switch
。
对术语进行了一些更正
在Java中,技术上没有功能。函数必须在类之外。只有"方法"在Java中。它们看起来像这样:
public static void someMethod(int somePar) { }
switch
既不是功能也不是方法,因此您无法呼叫"它。 switch
是一个"执行的控制结构"或"运行"。
答案 1 :(得分:1)
你可以这样做:
public void promptUser(){
Scanner input=new Scanner(System.in);
boolean validOption = false;
while(!validOption){
validOption = true;
System.out.println("please choose the operator");
System.out.println("1-->+ \n2-->- \n3-->* \n4-->/");
int z=input.nextInt();
switch(z){
case 1 :
System.out.println("your result is"+(x+ y));
break;
case 2 :
System.out.println("your result is"+(x- y));
break;
case 3 :
System.out.println("your result is"+(x* y));
break;
case 4 :
System.out.println("your result is"+(x/ y));
break;
default :
System.out.println("choose the option from listed above");
validOption = false;
break;
}
}
}
我更喜欢使用循环,因此您不会反复对同一方法进行大量调用,因此可以避免使用OutOfMemoryError
。
答案 2 :(得分:0)
假设您的代码位于名为from datetime import timedelta
float_time = 0.528084743
seconds_per_day = 24* 60 *60
time_in_seconds = round(float_time * seconds_per_day)
time = timedelta(seconds=time_in_seconds)
print(time)
有几种方法可以做到这一点。
<强>递归:强>
只需在开关中再次调用该功能。
calculate()
返回一个值并循环:
更改功能以使其返回值。例如,如果除了默认值之外的任何内容,则返回true;如果默认值为默认值,则返回false。然后,在调用calculate()的逻辑中,将它放在某种循环中。
default :
System.out.println("choose the option from listed above");
calculate();
return;
答案 3 :(得分:0)
你可以将它放在循环中,例如do ... while循环,你可以捕获一个键作为结束条件。
do {
// your code here
} while(ending_condition);
答案 4 :(得分:0)
while(true)
{
Scanner input=new Scanner(System.in);
System.out.println("please choose the operator");
System.out.println("1-->+ \n2-->- \n3-->* \n4-->/ \n5-->Exit");
int z=input.nextInt();
switch(z)
{
case 1 :
System.out.println("your result is"+(x+ y));
break;
case 2 :
System.out.println("your result is"+(x- y));
break;
case 3 :
System.out.println("your result is"+(x* y));
break;
case 4 :
System.out.println("your result is"+(x/ y));
break;
case 5 :
System.exit(0);
default :
System.out.println("choose the option from listed above");
break;
}
}