Java 尝试将For循环与';菜单';
初学者在这里,请尽可能解释 课程问题要求我创建菜单(完成) 菜单上有多个选项,给出不同的一次性结果(完成) 现在它希望我为、Java 尝试将For循环与';菜单';,java,for-loop,bluej,Java,For Loop,Bluej,初学者在这里,请尽可能解释 课程问题要求我创建菜单(完成) 菜单上有多个选项,给出不同的一次性结果(完成) 现在它希望我为、while和do…while实现一个循环(无法理解) 我真的尝试了我所有的基本知识,包括在for循环中创建和填充数组(事后看来这是一个愚蠢的想法) 正如您在评论中要求提供一个带有for的示例一样 练习的重点似乎是在菜单上迭代,直到满足退出条件(“X”.equals(input))。这意味着在for语句中的三个条件之间,这是唯一需要指定的条件。这是因为语句的(基本)的一般形式
while
和do…while
实现一个循环(无法理解)
我真的尝试了我所有的基本知识,包括在for
循环中创建和填充数组(事后看来这是一个愚蠢的想法)
正如您在评论中要求提供一个带有for
的示例一样
练习的重点似乎是在菜单上迭代,直到满足退出条件(“X”.equals(input)
)。这意味着在for
语句中的三个条件之间,这是唯一需要指定的条件。这是因为
语句的(基本)的一般形式是
for ( [ForInit] ; [Expression] ; [ForUpdate] )
括号中的这些术语都不是强制性的,因此我们可以去掉[ForInit]
和[ForUpdate]
(但保留分号)。这样做的效果是不使用[ForInit]
初始化任何内容,并且在循环的每次迭代结束时使用[ForUpdate]
不执行任何操作,这样我们只需检查[Expression]
表达式给出的退出条件(当它被计算为false
时,循环退出)
请注意,控制台
是在循环之外声明的,因为在每次迭代中分配一个控制台是浪费的。还有输入
,因为在语句的条件下需要它
Scanner console = new Scanner(System.in);
String input = "";
for (;!"X".equals(input);) { // notice, the first and last part of the for loop are absent
displayMenu();
input = console.nextLine().toUpperCase();
System.out.println();
switch (input) {
case "A": System.out.println("Option #A was selected"); break;
case "B": System.out.println("Option #B was selected"); break;
case "C": System.out.println("Option #C was selected"); break;
case "D": System.out.println("Option #D was selected"); break;
case "X": System.out.println("You chose to Exit"); break;
default: System.out.println("Invalid selection made"); break;
}
}
您可能会注意到这有点尴尬,因为这不是您通常使用的for
循环
无论如何,在这一点上,while
版本变得微不足道(while(!“X.equals(input))
),在这种情况下,do…while
也是等价的,(do{…}while(!“X.equals(input))
,因为相同的条件适用于当前循环的结束和下一个循环的开始,它们之间没有副作用
另一方面,您可能会注意到while(condition)
和for(;condition;)
在功能上是等效的,您可能会疑惑为什么应该使用其中一个而不是另一个。答案是可读性。当(条件)
for循环中的所有参数都不是必需的时,执行时,您想要执行的操作就更加清楚了。
定义stopflag并检查输入是否为“X”。
当输入为“X”时,只需更改stopFlag,或者只需使用break语句中断循环即可
public void startFor()
{
boolean stopFlag = false;
for(; stopFlag == false ;) {
displayMenu();
Scanner console = new Scanner(System.in);
String input = console.nextLine().toUpperCase();
System.out.println();
switch (input)
{
case "A": System.out.println("Option #A was selected"); break;
case "B": System.out.println("Option #B was selected"); break;
case "C": System.out.println("Option #C was selected"); break;
case "D": System.out.println("Option #D was selected"); break;
case "X": System.out.println("You chose to Exit"); break;
default: System.out.println("Invalid selection made"); break;
}
if(input.contentEquals("X"))
stopFlag = true;
}
}
就像start()方法一样,它是一次基本的。我应该从中汲取灵感并修改它(更改它)以与For循环兼容。共享循环的代码。是否需要实现这三个(For
、while
和Do…while
)这是一种问题…我想不出来…无论我输入A、B、C或D,我都需要For循环保持活动状态,当我输入X时,我需要它退出。非常感谢!
public void startFor()
{
boolean stopFlag = false;
for(; stopFlag == false ;) {
displayMenu();
Scanner console = new Scanner(System.in);
String input = console.nextLine().toUpperCase();
System.out.println();
switch (input)
{
case "A": System.out.println("Option #A was selected"); break;
case "B": System.out.println("Option #B was selected"); break;
case "C": System.out.println("Option #C was selected"); break;
case "D": System.out.println("Option #D was selected"); break;
case "X": System.out.println("You chose to Exit"); break;
default: System.out.println("Invalid selection made"); break;
}
if(input.contentEquals("X"))
stopFlag = true;
}
}