运算符无法解析为变量[duplicate]

问题描述 投票:-2回答:2

此问题已经在这里有了答案:

我正在制作一种简单的计算器。它需要打印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);           
        }

        }
    }
}

我无法运行代码。它给我的错误是“运算符无法解析为变量。”

java
2个回答
0
投票

您需要贴标变量:

int operator;

P.S。您也似乎忘记了在[]之后关闭花括号

   } else if (operator == 2) { 
        answer = n1 - n2;
        System.out.println(n1 - n2 + "= ");

0
投票
    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);           
            }

            }

    }
© www.soinside.com 2019 - 2024. All rights reserved.