Java 运营商>;参数类型为布尔型,双精度,未定义

Java 运营商>;参数类型为布尔型,双精度,未定义,java,boolean-operations,Java,Boolean Operations,我是一个新的程序员,如果这真的是基本的,那么很抱歉。我在这个网站上四处寻找答案,我可以找到非常相似的问题,但没有一个是我所需要的 import java.util.Scanner; public class sortThreeIntegers { public static void main (String[] args) { Scanner input = new Scanner(System.in); Scanner input

我是一个新的程序员,如果这真的是基本的,那么很抱歉。我在这个网站上四处寻找答案,我可以找到非常相似的问题,但没有一个是我所需要的

import java.util.Scanner;

public class sortThreeIntegers 
{
    public static void main (String[] args) 
        {
        Scanner input = new Scanner(System.in);
        Scanner input2 = new Scanner(System.in);
        Scanner input3 = new Scanner(System.in);
        System.out.println("Enter the first number: ");
        System.out.println("Enter the second number: ");
        System.out.println("Enter the third number: ");

        double firstNumber = input.nextDouble();
        double secondNumber = input2.nextDouble();
        double thirdNumber = input3.nextDouble();

        if (firstNumber > secondNumber > thirdNumber == true) 
        {
            System.out.println(firstNumber + ", " + secondNumber + ", " + thirdNumber);
        }
        else if (firstNumber > thirdNumber > secondNumber == true) 
        {
            System.out.println(firstNumber + ", " + thirdNumber + ", " + secondNumber);
        }
    }
}
注:这是在我编写代码的中间,我还没有完成这个。
为什么我会得到错误“运算符>对于参数类型boolean,double未定义”?再次,如果这真的很简单,我很抱歉

如果(firstNumber>secondNumber>thirdNumber==true),则不能有此:
if

您需要将其分解为:

if (firstNumber > secondNumber && secondNumber > thirdNumber) {
这是无效的;你想要:

if (firstNumber > secondNumber && secondNumber > thirdNumber)
这同样适用于您的
else if
条件

在Java中,不能像在Python中那样链接比较。此外,布尔表达式中永远不需要
==true
。毕竟,
x==true
将始终是
x


您收到的错误是有意义的,因为表达式的计算结果如下:

(firstNumber > secondNumber) > thirdNumber
现在
(firstNumber>secondNumber)
是一个布尔值,不能与double(
thirdNumber
)进行比较


最后,看起来您只是在尝试按排序顺序输出数字。为什么不定期对它们进行排序,然后输出结果呢?另外:不要使用三种不同的扫描仪!同一个用三次就行了

这就是我对数字进行排序的意思:

double numbers[] = {firstNumber, secondNumber, thirdNumber};
Arrays.sort(numbers);
System.out.println(numbers[2] + ", " + numbers[1] + ", " + numbers[0]);

不能像我们表达数学不等式的快捷方式那样,组合诸如
>
之类的运算符。必须显式列出此类表达式,并使用
&&
和运算符连接表达式

if (firstNumber > secondNumber && secondNumber > thirdNumber) {
此外,我还将不必要的比较去掉了
true
,因为
>
(和其他比较运算符)的结果已经是
布尔值

如果
条件类似,您可以更改您的
else

if (firstNumber > secondNumber && secondNumber > thirdNumber) {