所以我正在开发一个程序,允许用户将学生添加到课堂中,以及管理他们的成绩和不是。当用户选择菜单中的第一个选项时,他必须输入id(强制),但他也可以添加数字分数和/或字母等级。根据另一篇文章中的反馈,我设法创建一个读取用户输入的字符串变量行,然后检查它是否是" S" /" s" (跳过或不跳过)并相应地将值解析为double。现在在问题的基础上,如果用户决定跳过添加分数,我怎么能跳过提示并继续下一个提示?我试图使用 break;但它退出整个循环。有没有办法跳过得分问题并继续问题等级的问题?
输出:
1)将学生添加到班级
2)从班级中删除学生
3)为学生设置成绩
4)编辑学生成绩
5)显示班级报告
6)退出
1
请输入id: 请输入分数:(输入s to Skip)
请输入成绩:(输入s to Skip)
代码
// Prompting the user for Score (Numerical Grade)
System.out.println("Kindly input Score: (Enter s to Skip)");
// reading the input into the line variable of string datatype
String line = input.nextLine();
// checking if line =="s" or =="S" to skip, otherwise
// the value is parsed into a double
if("s".equals(line) || "S".equals(line))
{
break; // this exists the loop. How can I just skip this requirement
//and go to the next prompt?
}else try
{
score = Double.parseDouble(line);
System.out.println(score);
} catch( NumberFormatException nfe)
{
}
// Prompting the user for Numerical Grade
System.out.println("Kindly input Grade: (Enter s to Skip)");
String line2 = input.nextLine();
if("s".equals(line2) || "S".equals(line2))
{
break; // this exists the loop. How can I just skip this
// requirement and go to the next prompt?
}else try
{
score = Double.parseDouble(line2);
System.out.println(score);
} catch( NumberFormatException nfe)
{
}
答案 0 :(得分:3)
只需删除break
:
if("s".equals(line) || "S".equals(line))
{
// Don't need anything here.
}else {
try
{
score = Double.parseDouble(line);
System.out.println(score);
} catch( NumberFormatException nfe)
{
}
}
但最好不要有一个空的true
案例(或者更确切地说,这是不必要的):
if (!"s".equals(line) && !"S".equals(line)) {
try {
// ...
} catch (NumberFormatException nfe) {}
}
您还可以使用String.equalsIgnoreCase
来避免需要测试"s"
和"S"
。
答案 1 :(得分:0)
使用continue
关键字。 break
将退出整个循环,continue
只是跳过下一个。