关于布尔表达式的一个错误

时间:2015-11-17 23:27:51

标签: java boolean

初学Java学习者。我正在开发一个项目,我给了布尔表达式,并根据它们创建一个程序。 我设法完成了3/4,但其中一个我不断收到关于“!”的错误。

public class Boolean2{
  public static void main(String[] args)
  {
     Scanner scan = new Scanner(System.in);
     System.out.println( "Please enter in your 3 Numbers ");  
        int a = scan.nextInt();
        int b = scan.nextInt();
        int c = scan.nextInt();
         boolean boolNum;
         boolNum = (b>a&&c!=15);
         System.out.println(" " +boolNum);
         boolNum = (a>b||b<c);
         System.out.println("  " +boolNum);
         boolNum = (a&& !a); // This is the problem line
         System.out.println("  " +boolNum);
         boolNum=  (b<c&&c<a||c==a+b);
         System.out.println("  " +boolNum);

                      }
}

这是错误:

Boolean2.java:16: error: bad operand type int for unary operator '!'
         boolNum = (a&& !a);

2 个答案:

答案 0 :(得分:0)

!是一个一元的否定运算符,它需要一个布尔操作数。因此,它无法应用于int。 通过做:

boolNum = (a&& !a);

您正尝试将!应用于aaint

答案 1 :(得分:0)

在C中,这个!a会起作用,但Java对它的类型更严格,并且不允许!an_int_var!仅适用于布尔类型。

顺便说一句:在C中,a && !a是无意义的 - 它总是错误的,因为双方都不是真的。