【发布时间】:2016-03-19 02:29:57
【问题描述】:
我在尝试使用 do-while 循环时遇到了一些逻辑问题。在我的 main() 方法中。如果用户输入大于 6 的值,我会一次又一次地提示用户:
do{
System.out.println("select your option: ");
System.out.println("1.option1");
System.out.println("2.option2");
System.out.println("3.option3");
System.out.println("4.option4");
System.out.println("5.option5");
System.out.println("6.Quit");
optionChoice = sc.nextInt();
switch (optionChoice) {
case 1:
option1Method();
break;
}
} while (optionChoice > 6);
然后在我的option1Method() 中,我还有另一个 do while 循环:
do {
System.out.println("select your option: ");
System.out.println("1.opt1 method1");
System.out.println("2.opt2 method2");
System.out.println("3.opt3 method3");
System.out.println("4.Back");
optOption = sc.nextInt();
switch (optOption ) {
case 1: //do stuffs, same for case 2 and 3
break;
case 4: return;
default: break;
}
} while (optOption > 4);
对于这种方法,我试图一次又一次地提示用户选择,只要他们输入大于 4 的任何内容。然后,当他们输入 4 时,它应该返回到 main() 方法中的 do while 循环。
但是,对于第二个 do-while 循环,当我输入 4 时,程序本身就被终止了。有什么想法吗?
提前致谢。
【问题讨论】:
-
第二段代码是你
option1Method()的正文吗? -
是的,第二块属于option1Method()。当用户输入 4.Back 时,我尝试做类似的事情,然后它会回到 main 方法内部的第一段 do while
-
@I Was Solost,@nuaavee 回答是否解决了您最初的问题。我的意思是当数字大于 6 时,程序应该继续提示用户选择一个选项,因为即使数字小于 6,它也会询问用户?
-
另外,你可以试试我建议的
optionChoice > 6 || optionChoice == 1吗? -
optOption != 4作为第二个 do-while 循环中的条件怎么样