2015-09-17 3 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 цикл только, а не делать-пока. –

+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

Вы не указали свои коды меню. Поместите их внутри блока while, как предположил mszymborski. – 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

ДА СПАСИБО :) :) –

+0

Конечно, это прекрасно работает, но есть одна небольшая ошибка, которую я должен найти и исправить, когда я нажимаю 5 в первый раз, когда он снова показывает меню (что не предполагается) и когда я нажимаю его во второй раз, когда система THAN выходит из системы. Поэтому я думаю, что мне нужно исправить эту единственную проблему. –

+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, это то, что я не могу понять, я много трачу на изучение, но я просто сдался, потому что Я был смущен. Но, поскольку вы сказали, что я вернусь и ПОПРОБУЮ, чтобы узнать это снова. –

Смежные вопросы