如何在不中断和退出整个循环的情况下跳过提示并继续下一个提示? 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 只是跳过下一件事。