如何跳过提示并继续下一步而不破坏并退出整个循环? Java的

时间:2016-05-24 23:22:59

标签: java skip

所以我正在开发一个程序,允许用户将学生添加到课堂中,以及管理他们的成绩和不是。当用户选择菜单中的第一个选项时,他必须输入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)
{

}

2 个答案:

答案 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只是跳过下一个。