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) {