2014-11-20 278 views
1

我正在試圖製作一個程序,要求電工輸入伏特數。如果他/她輸入的值大於20或小於0,程序應該結束而不會提示用戶再次進入。現在,我擁有它,所以它會提示用戶退出或繼續,這是我不想要的。這裏是程序的內容:Java - 如何退出While循環中環

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; 
     } 
    } 
} 

縮進似乎有點關閉。我不太清楚如何解決這個問題。

+0

你的循環中有兩個'input = kbReader.nextLine()'。這沒有道理!你應該在循環之外(在循環開始之前)取第一個。或者,您可以在第一次輸入掃描之後立即放置退出條件,並擺脫第二次輸入掃描。 – 2014-11-20 18:38:41

+4

使用break關鍵字。 – StackFlowed 2014-11-20 18:38:47

+0

看起來應該替換'System.out.println(「無效輸入」);'與「休息」; – newcoder 2014-11-20 18:41:59

回答

0

所有你需要做的是

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

您可以使用一個打破第一,如果從句中:

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

您可以嘗試使用休息;.中斷允許while循環退出。