java 错误消息:运算符 < 不能应用于 boolean,int

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/6559669/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-30 16:21:59  来源:igfitidea点击:

Error message: operator < cannot be applied to boolean,int

javacompiler-errors

提问by user820913

I′m new to programming, and are doing som exercices. In this exercice I am supposed to write a program that reads in three numbers from the user of the program. The program is supposed to find the smallest number, and print which one is the smallest number. Here is my code:

我是编程新手,正在做一些练习。在这个练习中,我应该编写一个程序,从程序的用户那里读取三个数字。该程序应该找到最小的数字,并打印哪个是最小的数字。这是我的代码:

import javax.swing.JOptionPane;

public class Smallestnumber
{
  public static void main( String args[] )
    {
    // Defining variables:
    String firstnumberstring;
    String secondnumberstring;
    String thirdnumberstring;
    String result;
    int firstnumber;
    int secondnumber;
    int thirdnumber;

    // Making input frames:
    firstnumberstring = JOptionPane.showInputDialog( "Write first number!" );
    secondnumberstring = JOptionPane.showInputDialog( "Write second number!");
    thirdnumberstring = JOptionPane.showInputDialog( "Write third number!" );

    // Converting stringvalues to int values:
    firstnumber = Integer.parseInt( firstnumberstring );
    secondnumber = Integer.parseInt( secondnumberstring );
    thirdnumber = Integer.parseInt( thirdnumberstring );

    // Initialising printstring to an empty string:
    result = "";

    if ( firstnumber < secondnumber < thirdnumber )
    result = firstnumber + " is the smallest number!";

    if ( firstnumber < thirdnumber < secondnumber )
    result = firstnumber + " is the smallest number!";

    if ( secondnumber < firstnumber < thirdnumber )
    result = secondnumber + " is the smallest number!";

    if ( secondnumber < thirdnumber < firstnumber )
    result = secondnumber + " is the smallest number!";

    if ( thirdnumber < firstnumber < secondnumber )
    result = thirdnumber + " is the smallest number!";

    if ( thirdnumber < secondnumber < firstnumber )
    result = thirdnumber + " is the smallest number!";

    // Making conclusion box:
    JOptionPane.showMessageDialog( null, result, "Conclusion:", JOptionPane.INFORMATION_MESSAGE );

    } // End of main method
} // End of class Smallestnumber

And here is the error messages:

这是错误消息:

Smallestnumber.java:29: operator < cannot be applied to boolean,int
    if ( firstnumber < secondnumber < thirdnumber )
                                    ^
Smallestnumber.java:32: operator < cannot be applied to boolean,int
    if ( firstnumber < thirdnumber < secondnumber )
                                   ^
Smallestnumber.java:35: operator < cannot be applied to boolean,int
    if ( secondnumber < firstnumber < thirdnumber )
                                    ^
Smallestnumber.java:38: operator < cannot be applied to boolean,int
    if ( secondnumber < thirdnumber < firstnumber )
                                    ^
Smallestnumber.java:41: operator < cannot be applied to boolean,int
    if ( thirdnumber < firstnumber < secondnumber )
                                   ^
Smallestnumber.java:44: operator < cannot be applied to boolean,int
    if ( thirdnumber < secondnumber < firstnumber )
                                    ^
6 errors

How can I get the program to work?

我怎样才能让程序运行?

回答by Andrea

You can't do thirdnumber < secondnumber < firstnumberin Java, as it interprets it as (thirdnumber < secondnumber) < firstnumber, comparing trueor falseto the number.

你不能thirdnumber < secondnumber < firstnumber用 Java做,因为它把它解释为(thirdnumber < secondnumber) < firstnumber、比较truefalse数字。

What you want is to combine two conditions like this:

你想要的是结合两个这样的条件:

if ( firstnumber < secondnumber && secondnumber < thirdnumber )
result = firstnumber + " is the smallest number!";