此处的初学者,请尽可能多地进行说明!
一个课程问题要求我创建一个菜单(完成)。
菜单上具有多个选项可以给出不同的一次性结果(完成)。
现在它希望我实现一个@EnableMongoRepositories
,for
和while
循环(不能理解)
我确实尝试了所有基本知识,包括在do...while
循环内创建和填充数组(事后看来这是一个愚蠢的主意)。
for
答案 0 :(得分:1)
您要求在注释中添加for
的示例。
练习的目的似乎是在菜单上进行迭代,直到满足退出条件为止("X".equals(input)
)。这意味着除了在for
语句中的三个条件之间,这是您需要指定的唯一条件。这是因为for
语句的一般形式是
for ( [ForInit] ; [Expression] ; [ForUpdate] )
括号中的所有术语都不是强制性的,因此我们也可以摆脱[ForInit]
和[ForUpdate]
(但保留分号)。这具有以下效果:不使用[ForInit]
初始化任何内容,并且在循环[ForUpdate]
的每次迭代结束时不执行任何操作,只剩下检查{{1}给出的退出条件}表达式(当评估为[Expression]
时,循环退出)。
请注意,false
是在循环外部声明的,因为在每次迭代中分配一个会很浪费。还有console
,因为您需要input
语句的条件。
for
您可能会注意到这有点尴尬,因为这不是您通常使用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 ;)
时,您想做什么就更清楚了。
答案 1 :(得分:0)
for循环中的所有参数不是强制性的。 定义一个停止标志并检查输入是否为“ 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;
}
}