此问题已经在这里有了答案:
我正在制作一种简单的计算器。它需要打印2个随机数,加上或减去它们。对于前。它会打印3422-193或3422 + 193。然后,用户回答该问题,并说出是对还是错。
我没有太多尝试,因为我是编码新手,所以我不知道从哪里开始。
import java.util.Random;
import java.util.Scanner;
public class MathTutor {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int useranswer;
int answer;
Random rand = new Random();
int n1 = rand.nextInt(9999) + 1;
int n2 = rand.nextInt(0) + 1;
if (operator == 1) {
answer = n1 + n2;
System.out.println(n1 + n2 + "= ");
} else if (operator == 2) {
answer = n1 - n2;
System.out.println(n1 - n2 + "= ");
useranswer = scanner.nextInt();
if (useranswer == answer) {
System.out.println("You are right");
} else if (useranswer > answer) {
System.out.println("Incorrect. Your answer is too high. Answer is " + answer);
} else if (useranswer < answer) {
System.out.println("Incorrect. Your answer is too low. Answer is " + answer);
}
}
}
}
我无法运行代码。它给我的错误是“运算符无法解析为变量。”
您需要贴标变量:
int operator;
P.S。您也似乎忘记了在[]之后关闭花括号
} else if (operator == 2) {
answer = n1 - n2;
System.out.println(n1 - n2 + "= ");
static int operator;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
operator=scanner.nextInt();
int useranswer;
int answer;
Random rand = new Random();
int n1 = rand.nextInt(9999) + 1;
int n2 = rand.nextInt(operator) + 1;
if (operator == 1) {
answer = n1 + n2;
System.out.println(n1 + n2 + "= ");
} else if (operator == 2) {
answer = n1 - n2;
System.out.println(n1 - n2 + "= ");
useranswer = scanner.nextInt();
if (useranswer == answer) {
System.out.println("You are right");
} else if (useranswer > answer) {
System.out.println("Incorrect. Your answer is too high. Answer is " + answer);
} else if (useranswer < answer) {
System.out.println("Incorrect. Your answer is too low. Answer is " + answer);
}
}
}