2015-04-18 114 views
2

我有這樣的代碼重新運行程序終止

public static void main(String[] args) { 
    Scanner scanner = new Scanner(System.in); 
    System.out.println("Enter menu number: "); 
    int value = scanner.nextInt(); 

    if (value == 1){ 
     System.out.println("first"); 
    } else if (value == 2) { 
     System.out.println("second"); 
    } else if (value == 3) { 
     System.out.println("third"); 
    } else { 
     System.out.println("closing program"); 
    }    
} 

我想要的行爲是「1」時輸入的菜單值和「第一」被打印出來,程序不會終止,但追溯到System.out.println("Enter menu number: ");,因此可以輸入另一個菜單編號等。不知道該怎麼去做。

+0

使用'while'循環。 –

+0

你想要一個菜單​​驅動的程序。在這種情況下儘可能做到最好。 –

+0

@VinayakPingale是的。你有答案嗎? – ollaollu

回答

2

你可以做這樣的事情

public static void main(String[] args) { 
    Scanner scanner = new Scanner(System.in); 
    String userInput = ""; 
    while (true) { 
     System.out.println("Enter menu number: "); 
     userInput = scanner.next(); 
     if (userInput.trim().toUpperCase().equals("EXIT")) { 
      break; 
     } 
     int value = Integer.parseInt(userInput); 

     if(value == 1){ 
      System.out.println("first"); 
     } 
     else if(value==2){ 
      System.out.println("second"); 
     } 
     else if(value==3){ 
      System.out.println("third"); 
     } 

    }    
} 
1

把你的代碼的循環:

public static void main(String[] args) { 
    Scanner scanner = new Scanner(System.in); 
    int value = -1; 

    do { // Here you will loop until you enter something to "terminate" 
    System.out.println("Enter menu number: "); 
    value = scanner.nextInt(); 

    if (value == 1){ 
     System.out.println("first"); 
    } else if (value==2){ 
     System.out.println("second"); 
    } else if(value==3){ 
     System.out.println("third"); 
    } else{ 
     System.out.println("closing program"); 
    } 
    } while (value != -1); // End condition 
} 
+0

發佈一個不能編譯的代碼只是第一個迴應,因此不鼓勵SO。 – alfasin

+0

'value'超出範圍。 –

+0

現在它會編譯。解決OP的問題 - 做得好! – alfasin