【问题标题】:Java - How to quit a While Loop mid loopJava - 如何退出 While 循环中间循环
【发布时间】:2015-01-18 18:02:39
【问题描述】:

我正在尝试制作一个程序,要求电工输入伏特数。如果他/她输入的值大于20 或小于0,程序应该结束而不提示用户再次执行。现在,我有它,所以它会提示用户退出或继续,这是我不想要的。以下是该程序的内容:

public static void main(String[] args) {

    Scanner kbReader = new Scanner(System.in);
    String input = "";
    int voltage;
    boolean Loop = true;

    while (Loop) {

        System.out.print("Enter a numeric value of 0 to 20 volts");
        input = kbReader.nextLine();
        voltage = Integer.parseInt(input);

        if (voltage < 0 || voltage > 20) {
            System.out.println("Invalid input.");
        }

        else if (voltage >= 0 && voltage < 5) {
            System.out.println("Insufficient Voltage - Replace Relay"); 
        }

        else if (voltage >= 5 && voltage < 15) {
            System.out.println("Low Voltage"); 
        }

        else if (voltage >= 15 && voltage < 18) {
            System.out.println("Voltage is in proper range");
        }
        else if (voltage >= 18 && voltage <= 20) {
            System.out.println("Voltage is high - Check Transformer"); 
        }

        System.out.print("\n\nType \"Q\" to quit, or type nothing to go again.");
        input = kbReader.nextLine();

        if (input.equalsIgnoreCase("q")) {
            Loop = false;
        }
    }
}

缩进似乎有点不对劲。我不太确定如何解决这个问题。

【问题讨论】:

  • 循环中有两个input = kbReader.nextLine()。这没有意义!!!您可能应该将第一个放在循环之外(在开始之前)。或者,您可以在第一次输入扫描之后立即放置退出条件,并摆脱第二次输入扫描。
  • 使用 break 关键字。
  • 看起来你应该替换 'System.out.println("invalid input");'用'休息;'
  • @AndyFedoroff 只有引号应该在引号中,恢复您的更改

标签: java if-statement while-loop


【解决方案1】:

您可以尝试使用 break;。 Breaks 允许 while 循环退出。

【讨论】:

    【解决方案2】:

    您可以在第一个 if 子句中使用中断:

    if (voltage < 0 || voltage > 20)
    {
      break;
    }
    

    【讨论】:

      【解决方案3】:

      你需要做的就是

      if (voltage < 0 || voltage > 20) {
          System.out.println("Invalid input.");
          break;
      }
      

      【讨论】:

        猜你喜欢
        • 2011-12-18
        • 2016-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-08
        • 1970-01-01
        • 2013-03-01
        • 1970-01-01
        相关资源
        最近更新 更多