Java 比较运算

Java 比较运算,比较运算就是计算两个值之间的关系,结果是一个布尔类型(boolean)的值。比较运算适用于所有数值类型和字符类型。

比较操作符有大于(>)、大于等于(>=)、小于(<)、小于等于(<=)、等于(==)、不等于(! =)。

大部分也都是比较直观的,需要注意的是等于。首先,它使用两个等号==,而不是一个等号=。为什么不用一个等号呢?因为一个等号=已经被占了,表示赋值操作。另外,对于数组,==判断的是两个变量指向的是不是同一个数组,而不是两个数组的元素内容是否一样,即使两个数组的内容是一样的,但如果是两个不同的数组,==依然会返回false,比如:

int[] a = new int[] {1,2,3};
int[] b = new int[] {1,2,3};
//a==b的结果是false

如果需要比较数组的内容是否一样,需要逐个比较里面存储的每个元素。

逻辑运算

逻辑运算根据数据的逻辑关系,生成一个布尔值true或者false。逻辑运算只可应用于boolean类型的数据,但比较运算的结果是布尔值,所以其他类型数据的比较结果可进行逻辑运算。

逻辑运算符具体有以下这些。

  • 与(&):两个都为true才是true,只要有一个是false就是false;
  • 或(|):只要有一个为true就是true,都是false才是false;
  • 非(!):针对一个变量,true会变成false, false会变成true;
  • 异或(^):两个相同为false,两个不相同为true;
  • 短路与(&&):和&类似,不同之处稍后解释;
  • 短路或(||):与|类似,不同之处稍后解释。

逻辑运算的大部分都是比较直观的,需要注意的是&和&&,以及|和||的区别。如果只是进行逻辑运算,它们也都是相同的,区别在于同时有其他操作的情况下,例如:

boolean a = true;
int b = 0;
boolean flag = a | b++>0;

因为a为true,所以flag也为true,但b的结果为1,因为|后面的式子也会进行运算,即使只看a已经知道flag的结果,还是会进行后面的运算。而||则不同,如果最后一句的代码是:

boolean flag = a || b++>0;

则b的值还是0,因为||会“短路”,即在看到||前面部分就可以判定结果的情况下,忽略||后面的运算。

酷客教程相关文章:

赞(0)

评论 抢沙发

评论前必须登录!