Java 如何向if/else语句添加while循环

Java 如何向if/else语句添加while循环,java,while-loop,Java,While Loop,我正在尝试向这个程序添加一个while循环。到目前为止,它生成2个随机数,用户必须输入这些数字的乘积。现在,用户每次都必须重新运行程序。目标是让用户通过输入sentinel值:-1来继续此操作,直到他们决定停止为止。我应该把while循环放在if语句的正上方吗 Random random = new Random(); Scanner scan = new Scanner(System.in); final int SENTINEL = -1; int number1 = ra

我正在尝试向这个程序添加一个while循环。到目前为止,它生成2个随机数,用户必须输入这些数字的乘积。现在,用户每次都必须重新运行程序。目标是让用户通过输入sentinel值:-1来继续此操作,直到他们决定停止为止。我应该把while循环放在if语句的正上方吗

  Random random = new Random();
  Scanner scan = new Scanner(System.in);

  final int SENTINEL = -1;
  int number1 = random.nextInt(13);
  int number2 = random.nextInt(13);
  int answer = number1 * number2;

  System.out.print("What is " + number1 + " X " + number2 + "? > ");
  int product = scan.nextInt(); 

  if (product == answer) {
    System.out.println("Correct! " + number1 + " X " + number2 + " = " + answer);
  } else { 
     System.out.println("Wrong " + number1 + " X " + number2 + " = " + answer);
  }

如果您希望用户每次都获得一个新的随机生成的数字,那么while循环应该在生成随机数字之前进行。换言之:

Random random = new Random();
Scanner scan = new Scanner(System.in);

final int SENTINEL = -1;
int number1;
int number2;
int product = 0;

while (product != SENTINEL) {
  number1 = random.nextInt(13);
  number2 = random.nextInt(13);
  int answer = number1 * number2;

  System.out.print("What is " + number1 + " X " + number2 + "? > ");
  product = scan.nextInt(); 

  if (product == answer) {
    System.out.println("Correct! " + number1 + " X " + number2 + " = " + answer);
  } else { 
    System.out.println("Wrong " + number1 + " X " + number2 + " = " + answer);
  }
}
一般来说,while语句应该放在要重复的第一段代码之前。

类似这样的内容:

while(true){
  number1 = random.nextInt(13);
  number2 = random.nextInt(13);
  int answer = number1 * number2;
  System.out.print("What is " + number1 + " X " + number2 + "? > ");
  int product = scan.nextInt(); 

  if(product == SENTINEL){
     System.exit(0);  // you could also use break; here
  }
  if (product == answer) {
    ...
}