2015-09-17 64 views
-4

下面是我的Java代碼,我想重新顯示它,直到用戶輸入5退出。有任何想法嗎?重新顯示菜單

int x = scan1.nextInt(); 
switch (x) 
{ 
case 1: addition(); 
case 2: minus(); 
case 3: mult(); 
case 4: division(); 
case 5: System.exit(0); 
} 
+0

你以前用過循環嗎? – mszymborski

+0

我只用while和while循環,而不用do-while。 –

+0

如果將上面的代碼放在無限循環中會發生什麼?它會終止嗎? – mszymborski

回答

0

您可以使用while循環。

while (true) { 

    // showing menu codes here 

    int x = scan1.nextInt(); 
    switch (x) { 
    case 1: 
     addition(); 
     break; 
    case 2: 
     minus(); 
     break; 
    case 3: 
     mult(); 
     break; 
    case 4: 
     division(); 
     break; 
    case 5: 
     System.exit(0); 
     break; 
    } 
} 

請注意,您還需要breaks爲每個case

+0

不起作用。它不回到菜單。 –

+0

這是因爲您沒有在循環內打印菜單。 – mszymborski

+0

你沒有顯示你的菜單代碼。像mszymborski建議的那樣將它們放在while塊中。 – hata

1

這是你想要的代碼示例:

public class StackOverflow { 

    public static void main(String[] args) { 
     menu(); 
    } 

public static void menu() { 
     Scanner sc = new Scanner(System.in); 

     while (true) { 
      System.out.println("MENU"); 
      // showing menu codes here 
      int x = sc.nextInt(); 

      switch (x) { 
       case 1: 
        //addition(); 
        break; 
       case 2: 
        //minus(); 
        break; 
       case 3: 
        //mult(); 
        break; 
       case 4: 
        //division(); 
        break; 
       case 5: 
        System.exit(0); 
        break; 
      } 
     } 
    } 
} 
+0

YES THANK YOU :)) –

+0

當然,它的工作原理完美,但有一個小錯誤,我必須找到並修復它,當我第一次按5時,它再次顯示菜單(這不應該)當我第二次按下它時,系統退出。所以我認爲我必須解決這個唯一的問題。 –

+0

這不是你想要的嗎?你能否向我解釋一下你想要什麼? –

0

你不應該在這裏使用System.exit()

如果你需要的只是退出一個連續的提示,你甚至不應該使用無限循環!

A while-loop是您所需要的。看下面的例子:

int input=0; 
do{ 
    input = scn.nextInt(); 
    switch(input){ 
     case 1: addition(); break; 
     case 2: minus(); break; 
     case 3: mult(); break; 
     case 4: division(); break; 
     //Case 5 to exit loop to be shifted to the loop condition 
    } 
}while(input != 5); 
+0

那麼這個代碼也可以工作,反正tnx。 –

+0

@ArminAlipour既然你在學習,我認爲你應該被告知好的編碼習慣。無限循環不適合這種情況。記住一個工作代碼並不意味着它是正確的。瞭解我的朋友的正確的事情。 – user3437460

+0

感謝您的建議,我會把它關注,唯一的問題是,我不知道如何使用do-while循環,這是我無法理解的,我花了很多天學習它,但我只是放棄了,因爲我很困惑。但既然你說過了,我會回去嘗試再次學習。 –