如何在不中断和退出整个循环的情况下跳过提示并继续下一个提示? Java
How to skip a prompt and proceed to the next without breaking and exiting the entire loop? Java
所以我正在开发一个程序,允许用户将学生添加到 class 以及管理他们的成绩等等。当用户选择菜单中的第一个选项时,他必须输入一个 id(强制),但他也可以添加一个数字分数 and/or 一个字母等级。根据另一个 post 中的反馈,我设法创建了一个字符串变量行来读取用户输入,然后检查它是否是 "S"/"s"(是否跳过)并将值解析为相应加倍。现在基于这个问题,如果用户决定跳过添加分数,我如何跳过提示并继续下一个提示? 我尝试使用 break;但它退出了整个循环 。有没有办法跳过分数问题并继续进行字母等级问题?
输出:
1) 将学生添加到 Class
2) 从 Class 中删除一名学生
3) 为学生设置成绩
4) 为学生编辑成绩
5) 显示Class 报告
6) 退出
1
请输入id:
请输入分数: (Enter s to Skip)
请输入成绩:(输入 s 跳过)
代码
// 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)
{
}
只需删除 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"
。
使用continue
关键字。 break
将退出整个循环,而 continue
只是跳过下一件事。
所以我正在开发一个程序,允许用户将学生添加到 class 以及管理他们的成绩等等。当用户选择菜单中的第一个选项时,他必须输入一个 id(强制),但他也可以添加一个数字分数 and/or 一个字母等级。根据另一个 post 中的反馈,我设法创建了一个字符串变量行来读取用户输入,然后检查它是否是 "S"/"s"(是否跳过)并将值解析为相应加倍。现在基于这个问题,如果用户决定跳过添加分数,我如何跳过提示并继续下一个提示? 我尝试使用 break;但它退出了整个循环 。有没有办法跳过分数问题并继续进行字母等级问题?
输出:
1) 将学生添加到 Class
2) 从 Class 中删除一名学生
3) 为学生设置成绩
4) 为学生编辑成绩
5) 显示Class 报告
6) 退出
1
请输入id: 请输入分数: (Enter s to Skip)
请输入成绩:(输入 s 跳过)
代码
// 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)
{
}
只需删除 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"
。
使用continue
关键字。 break
将退出整个循环,而 continue
只是跳过下一件事。