基本上,我正在尝试使用main方法创建一个测试类。根据用户输入,程序应该遵循一定的步骤顺序,然后在最后,我试图让程序从头开始再次开始(即,在程序开始时询问第一个问题) ,实际上不必退出程序并重新启动它。)
我过去做过类似的事情,我试图像以前一样做,但这次由于某种原因不能正常工作。
以下是我正在尝试做的基本要点:
public class Payroll {
public static void main(String[] args) {
int steps = 0;
while(steps == 0) {
<Execute this code>
steps = 1;
}
while(steps == 1) {
<Execute this code>
steps = 2;
}
while(steps == 2) {
<Execute this code>
steps = 0; //go back to the beginning
}
}
}
问题是,当程序到达“steps = 0”的步骤时,它会完全退出,而不是像我预期的那样回到开头。
有人知道如何做我想做的事吗?
答案 0 :(得分:1)
将三个while循环包含在另一个while循环中,从while(steps == 0)
延伸到}
的右括号while(steps == 2)
之后。
如果希望steps == 0
循环控制流,则新的while循环可以具有条件steps == 2
。然后,您可以将步骤设置为-1以转义封闭循环以及steps == 2
循环。像这样:
while(steps == 0) {
while(steps == 0) { /* ... */ }
while(steps == 1) { /* ... */ }
while(steps == 2) { /* ... */ } // this loop sets steps back to 0 to keep
// looping, or it sets steps to -1 to quit
}
答案 1 :(得分:1)
显然它不会从一开始就开始。你正在做的是在三个独立的while循环中检查条件。如果其中三个失败,它应该退出。功能没有任何问题。正如@irrelephant所说,你可以在另一个while循环中包含三个while循环。
我建议在一个while循环中使用三个案例的开关。
答案 2 :(得分:0)
您的代码与以下内容有何不同:
public static void main(String[] args) {
<Execute step == 0 code>
<Execute step == 1 code>
<Execute step == 2 code>
}
在哪种情况下基本上不是:
public static void main(String[] args) {
boolean done = false;
while(!(done)) {
<Execute step == 0 code>
<Execute step == 1 code>
<Execute step == 2 code>
if(some condition) {
done = true;
}
}
}
答案 3 :(得分:0)
但不建议使用嵌套循环。尝试递归。使用循环这就是我要做的。只要step = 0,代码就会继续重复。
public class Payroll {
public static void main(String[] args) {
int steps = 0;
while (steps == 0) {
while (steps == 0) {
<Execute this code>
steps = 1;
}
while (steps == 1) {
<Execute this code>
steps = 2;
}
while (steps == 2) {
<Execute this code>
steps = 0; //go back to the beginning
}
}
}
}