大家都知道一个boolean 类型的数据 有两个值 false 和true;
但在 if判断中却有两种表达方式:
例:
boolean a =false 在if 判断的括号中可以表示为 !a
boolean a = true 在if 判断的括号中可以表示为 a
不管a 的赋值是什么 !a 永远代表着 boolean a =false ;a 永远代表着 boolean a = true;
下面举个例子:
boolean a =false ;
if(!a){
System.out.println(1);
}
运行,控制台会打印出1,
如果换成下面这样
boolean a =false ;
if(a){
System.out.println(1);
}
运行,控制台不会打印1.
这是因为a 最开始已赋值 为 false
而第一个例子 表示满足 boolean a =false 执行打印,a 的赋值为false 条件成立,所以会打印。
而第二个例子 表示满足 boolean a = true 执行打印, a的赋值为false 条件并不成立,所以不会打印。
总结:
!a 表示的是一个布尔判断 并不是代表某个值,你如果定义 boolean a = false ,然后执行 System.out.println(!a); 控制台打印出的肯定是 true,这里代表的是取的a 的相反值,和if判断中的意义是不一样的。