在我的形状计算器 Java 程序中使用带有 Switch/Case 语句的循环
Using a Loop with Switch/Case statements in my shape calculator Java program
我在尝试创建形状计算器时遇到了另一个障碍,这次它使用循环和我的 Switch/Case 语句允许用户 select 他们希望计算的形状。
我正在尝试制作这样的计算器。用户 selects 1 表示三角形,他们计算并说他们现在希望 select5 之后立即计算一个圆,然后再次进行另一个圆计算,无论他们希望多少次,然后能够移动到另一个形状。说 6 代表一个球体。
到目前为止,我已经尝试使用 While (True) 循环,但似乎一旦我创建了一个 selection,我就陷入了这种情况,无法继续 select另一个形状来计算或 select 情况下 closes/exits 程序。
我已将我的程序缩减为以下示例,删除了制作形状所需的代码,因为形状本身不是此处的程序。它试图让我的用户选择范围更灵活,我想你可以这么说。
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
}
你必须每次都读取决策输入(无限循环)
这应该有效:
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
}
问题:
您只接受一次决策输入,因为它是在无限 while 循环之外编写的。因此在无限循环执行过程中,decision永远不会改变,每次都会执行相同的case,给人一种程序卡在case中的感觉,其实根本不是这样。
解决方法:用无限循环移动输入语句。
while (true) {
int decision = scan.nextInt();
//rest of the code
....
....
}
我在尝试创建形状计算器时遇到了另一个障碍,这次它使用循环和我的 Switch/Case 语句允许用户 select 他们希望计算的形状。
我正在尝试制作这样的计算器。用户 selects 1 表示三角形,他们计算并说他们现在希望 select5 之后立即计算一个圆,然后再次进行另一个圆计算,无论他们希望多少次,然后能够移动到另一个形状。说 6 代表一个球体。
到目前为止,我已经尝试使用 While (True) 循环,但似乎一旦我创建了一个 selection,我就陷入了这种情况,无法继续 select另一个形状来计算或 select 情况下 closes/exits 程序。
我已将我的程序缩减为以下示例,删除了制作形状所需的代码,因为形状本身不是此处的程序。它试图让我的用户选择范围更灵活,我想你可以这么说。
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
}
你必须每次都读取决策输入(无限循环)
这应该有效:
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
}
问题: 您只接受一次决策输入,因为它是在无限 while 循环之外编写的。因此在无限循环执行过程中,decision永远不会改变,每次都会执行相同的case,给人一种程序卡在case中的感觉,其实根本不是这样。
解决方法:用无限循环移动输入语句。
while (true) {
int decision = scan.nextInt();
//rest of the code
....
....
}