【发布时间】:2018-07-07 14:44:59
【问题描述】:
我需要根据用户的响应创建一个无限循环,但是,我在 while 循环之后一直卡住。对我来说,我似乎只需要复制/粘贴我之前的代码,因为它会生成一个新问题供用户回复。有人可以给我一些见解和/或材料让我阅读以更好地理解吗?
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// Create Scanner object for user input
Scanner input = new Scanner(System.in);
// Declare variable for number of questions correct
int correctQuestions = 0;
// Declare variable for number of questions overall
int overallQuestions = 0;
// Generate two random single-digit integers for math equation
int number1 = (int) (Math.random() * 10);
int number2 = (int) (Math.random() * 10);
// If number1 < number2, swap number 1 with number2
if(number1 < number2){
int temp = number1;
number1 = number2;
temp = number2;
}
// Ask the user to answer the mathematical questions
System.out.print("What is " + number1 + " x " + number2 + "?");
int answer = input.nextInt();
if(number1 * number2 == answer){
System.out.print("Correct. You are a genius!");
correctQuestions++;
overallQuestions++;
}
else
System.out.print("Sorry, looks like you'll have to try again");
while(number1 * number2 == answer ^ number1 * number2 != answer)
System.out.print("Would you like to try another question ? ");
String response = input.nextLine();
if(response == "y"){
// Generate two random single-digit integers for math equation
int number1 = (int) (Math.random() * 10);
int number2 = (int) (Math.random() * 10);
// If number1 < number2, swap number 1 with number2
if(number1 < number2){
int temp = number1;
number1 = number2;
temp = number2;
}
// Ask the user to answer the mathematical questions
System.out.print("What is " + number1 + " x " + number2 + "?");
int answer = input.nextInt();
if(number1 * number2 == answer){
System.out.print("Correct. You are a genius!");
correctQuestions++;
overallQuestions++;
}
else
System.out.print("Sorry, looks like you'll have to try again");
}
}
}
【问题讨论】:
-
现在是了解 IDE 中调试器的好时机
-
我正在查看调试器,但我很困惑为什么它说变量已经被声明。我是否必须为每个被问到的问题创建一个新变量? Main.java:44:错误:变量 number1 已在方法 main(String[]) int number1 = (int) (Math.random() * 10) 中定义;
-
不要用
==来比较Strings! -
int answer =有两种用法...第二种只需answer = -
你想用这条线达到什么目的:
number1 * number2 == answer ^ number1 * number2 != answer?
标签: java loops while-loop infinite-loop