2017-02-20 13 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

刚好围绕代码块while循环来检查,如果输入例如为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

您可以使用while循环,让您的程序运行,像这样:

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"); 
相关问题