[英]Using a Loop with Switch/Case statements in my shape calculator Java program
在创建形状计算器的过程中,我遇到了另一个障碍,这一次它在Loop中使用了Switch / Case语句,允许用户选择他们想要计算的形状。
我正试图使我的计算器这样。 用户为“三角形”选择1,他们进行计算,并说现在希望立即选择5来计算一个“圆”,然后再次进行另一个圆的计算,但是希望进行多次,然后才能移动到另一个形状。 说6个球体。
到目前为止,我已经尝试过使用While(True)循环,但是似乎一旦做出选择,我就陷入了这种情况,无法继续选择其他形状来计算或选择关闭/退出程序的情况。
在下面,我将程序简化为一个示例,以省去制作形状所需的代码,因为形状本身不是此处的程序。 我想您可能会说,它试图使我的用户选择范围更加灵活。
Scanner scan = new Scanner(System.in); //take user input int decision = scan.nextInt(); loop: while (true) { switch (decision) { case 1: //example break; case 2: //example and so on break; case 3: break; case 9: // Quit System.out.println("You decided to Quit"); break loop; default: // Wrong decision System.out.println("Select a number between 1 and 8 to make a decision or 9 to Quit"); } //exit program code here }
在循环中,您需要提示并阅读下一个选择。 您显示的代码会读取一个选项来设置decision
,但此后再也不会更改。
在循环内移动scan.nextInt()
loop: while (true) {
int decision = scan.nextInt();
switch (decision) {
case 1:
//example
break;
case 2:
//example and so on
break;
case 3:
break;
case 9:
// Quit
System.out.println("You decided to Quit");
break loop;
default:
// Wrong decision
System.out.println("Select a number between 1 and 8 to make a decision or 9 to Quit");
}
//exit program code here
}
问题:您仅接受一次决策输入,因为它是在无限while循环之外编写的。 因此,在执行无限循环期间,决策将永远不会改变,并且每次执行相同的案例时,都会给人留下程序卡在案例中的印象,而无论如何都不行。
解决方案:使用无限while循环移动输入语句。
while (true) {
int decision = scan.nextInt();
//rest of the code
....
....
}
您必须每次都阅读决策输入(无限循环)
这应该工作:
Scanner scan = new Scanner(System.in); //take user input
loop: while (true) {
int decision = scan.nextInt();
switch (decision) {
case 1:
//example
break;
case 2:
//example and so on
break;
case 3:
break;
case 9:
// Quit
System.out.println("You decided to Quit");
break loop;
default:
// Wrong decision
System.out.println("Select a number between 1 and 8 to make a decision or 9 to Quit");
}
//exit program code here
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.