Сообщение об ошибке: оператор <не может быть применен к логическому, int - PullRequest
1 голос
/ 03 июля 2011

Я новичок в программировании и выполняю упражнения.В этом упражнении я должен написать программу, которая читает три числа от пользователя программы.Программа должна найти наименьшее число и вывести, какое из них является наименьшим.Вот мой код:

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

А вот и сообщения об ошибках:

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

Как мне заставить программу работать?

1 Ответ

9 голосов
/ 03 июля 2011

Вы не можете сделать thirdnumber < secondnumber < firstnumber в Java, так как он интерпретирует его как (thirdnumber < secondnumber) < firstnumber, сравнивая true или false с числом.

То, что вы хотите - это объединить два условия следующим образом:

if ( firstnumber < secondnumber && secondnumber < thirdnumber )
result = firstnumber + " is the smallest number!";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...