我正在编写一个数据库程序,允许用户搜索员工,并为他们打开一个菜单。在我的Main()中我必须提示用户按m打开菜单()或q到打开finalStats()任何其他输入都是无效的。我的问题是我无法让while循环正常工作。无论何时我点击它都可以工作,当我点击q它工作正常,但每当我点击一个键以外的那里有一个无限循环,它只是无限打印出“请输入一个有效的字符”
boolean end = false;
System.out.println("Enter m or M to open menu, otherwise enter q or Q for the final stats");
String entered = scan.next();
while (end == false)
switch(entered)
{
case "m":
case "M":
menu();
case "q":
case "Q":
finalStats();
end = true;
default:
System.err.println("Please enter a valid character");
}
答案 0 :(得分:2)
您需要移动线
while (end == false)
到scan.next()
之前,以允许用户再试一次。确保在执行此操作时添加大括号,因此while
会影响您显示的整个程序代码段。对于循环和if语句,始终使用花括号被认为是一种好习惯。
另外,正如@RahulTripathi指出的那样,您需要在break
块的末尾添加case
语句。
答案 1 :(得分:0)
您遗漏了break
中的switch case
声明。同时移动while
语句以允许用户扫描。
试试这个:
boolean end = false;
while (end == false)
System.out.println("Enter m or M to open menu, otherwise enter q or Q for the final stats");
String entered = scan.next();
switch(entered)
{
case "m":
case "M":
menu();
break;
case "q":
case "Q":
finalStats();
end = true;
break;
default:
System.err.println("Please enter a valid character");
}
答案 2 :(得分:0)
我认为这可以解决您的问题:
boolean end = false;
System.out.println("Enter m or M to open menu, otherwise enter q or Q for the final stats");
String entered = scan.next();
while (end == false)
{
switch(entered)
{
case "m":
case "M":
menu();
break;
case "q":
case "Q":
finalStats();
end = true;
break;
default:
System.err.println("Please enter a valid character");
break;
}
System.out.println("Enter m or M to open menu, otherwise enter q or Q for the final stats");
String entered = scan.next();
}
你有几个问题。您在案例中缺少break;
,并且您没有在while循环中请求新输入。我不确定你是否想要多次征求一个选项。