Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决;类型不匹配:无法从int转换为boolean;java错误?_Java - Fatal编程技术网

如何解决;类型不匹配:无法从int转换为boolean;java错误?

如何解决;类型不匹配:无法从int转换为boolean;java错误?,java,Java,我正在写《java编程入门》一书,当我试图运行书中的一个示例时,我遇到了一个无法解决的错误。 代码是 import java.util.Scanner; public class SubtractionQuizLoop { public static void main(String[] args) { // TODO Auto-generated method stub final int NUMBER_OF_QUESTIONS = 5;

我正在写《java编程入门》一书,当我试图运行书中的一个示例时,我遇到了一个无法解决的错误。 代码是

import java.util.Scanner;

public class SubtractionQuizLoop {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        final int NUMBER_OF_QUESTIONS = 5;

        int correctCount = 0;

        int count = 0;

        long startTime = System.currentTimeMillis();

        String output = " ";

        Scanner input = new Scanner(System.in);

        while(count < NUMBER_OF_QUESTIONS) {
            int number1 = (int)(Math.random() * 10);
            int number2 = (int)(Math.random() * 10);

            if (number1 < number2){
                int temp = number1;
                number1 = number2;
                number2 = temp;
            }

            System.out.println("What is " + number1 + " minus " + number2 + "?");
            int answer = input.nextInt();

            if(number1 - number2 == answer) {
                System.out.println("You are correct");
                correctCount++;

            }else {
                System.out.println("Your answer is wrong.\n" + number1 + "-" + number2 + "=" + (number1 - number2));
            }

                count++;
                output += "\n" + number1 + "–" + number2 + "=" + answer + ((number1 – number2 == answer) ? " correct": " wrong");
            }

            long endTime = System.currentTimeMillis();
            long testTime = endTime - startTime;

            System.out.println("Correct count is " + correctCount + "\nTest  time is " + testTime / 1000 + "seconds\n" + output);

        }
    }

}

当我尝试更新输出变量时。将
(number1–number2==answer)
转换为
int
布尔值也不能解决错误。你知道如何解决这个问题吗?

这能回答你的问题吗?您似乎在该表达式中使用了破折号而不是减号,否则您的代码应该可以工作。此外,您有太多的右大括号-可能是因为代码开始
count++缩进不正确。@Sweeper我使用连字符而不是减号,并且在末尾添加了不需要的括号。@JonSkeet我也看到了。现在问题解决了,谢谢。
Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    Type mismatch: cannot convert from int to boolean
    Syntax error on token "Invalid Character", invalid AssignmentOperator
    Type mismatch: cannot convert from boolean to int

    at SubtractionQuizLoop.main(SubtractionQuizLoop.java:41)