2017-02-20 4 views
2

Я пишу программу последовательности Hailstone и хочу добавить возможность для программы продолжать вычислять даже после того, как первый вход и выход уже напечатаны. В принципе, вместо повторного запуска программы вы можете продолжать вводить данные.Как добавить возможность продолжения программы даже после ввода первого ввода?

public class HailStoneSequence { 
    static Scanner MyScanner = new Scanner(System.in); 
    public static void main(String[] args) { 
    System.out.println("Enter a number to generate the Hailstone Sequence for that number. "); 
    int num = MyScanner.nextInt(); //Taking input from user 
    while (num>1) 
    { 
     if (num%2 == 0) 
     { 
     num /= 2; 
     System.out.print(num+" "); 
     } 
     else 
     { 
     num = (num*3)+ 1; 
     System.out.print(num+" "); 
     } 
    } 
    } 
} 
+0

Немного выбора нит, но вы должны изменить «MyScanner» на «myScanner», это стандартное соглашение для обозначения переменной, начиная с нижнего регистра. – Joe

ответ

0

Просто окружает блок кода с временем циклом, который проверяет, если входной сигнал, например, 0, в этом случае 0 означает конец выполнения.

import java.util.Scanner; 
public class HailStoneSequence { 
    static Scanner MyScanner = new Scanner(System.in); 
    public static void main(String[] args) { 
    int num = 1; 
    while(num != 0) { 
     System.out.println("Enter a number to generate the Hailstone Sequence for that number. "); 
     num = MyScanner.nextInt(); //Taking input from user 
     while (num>1) 
     { 
      if (num%2 == 0) 
      { 
      num /= 2; 
      System.out.print(num+" "); 
      } 
      else 
      { 
      num = (num*3)+ 1; 
      System.out.print(num+" "); 
      } 
     } 
    } 
    } 

} 
0

Вы можете использовать время цикла, чтобы сохранить свою программу работы, как так:

System.out.println("Enter a number to generate the Hailstone Sequence for that number:(0 to quit) "); 
int num = MyScanner.nextInt(); //Taking input from user 
while(num != 0){ 
    //logic 
    System.out.println("Enter a number to generate the Hailstone Sequence for that number:(0 to quit) "); 
    num = MyScanner.nextInt(); //Taking input from user 
} 

Затем в конце вашей логики принять вход снова. программа будет продолжать работать до тех пор, пока пользователь не введет ключ (в данном случае 0)

+3

'do-while' более подходит, если вы собираетесь повторять запрос. – ChiefTwoPencils

+0

Не дублируйте код следующим образом. Это плохая практика. – Joe

0

Вы можете сделать что-то вроде этого:

String input = ""; 
do { 
    // Your code here 
    System.out.println("Continue?"); 
    input = MyScanner.next(); 
} while (!input.equals("exit");