代码改变世界

Java 读书笔记 (九) 运算符

2017-12-22 16:33  钱先生  阅读(189)  评论(0编辑  收藏  举报

短路逻辑运算符 &&

当使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。

 

 

 1 public class LuoJi{
 2     public static void main(String[] args){
 3         int a=5; //定义一个变量
 4         boolean b=(a<4)&&(a++<10);
 5         System.out.println("使用短路逻辑运算符的结果为"+b);
 6         System.out.println("a的结果为"+a);
 7      }
 8 }
 9 
10 
11 //运行结果为: 使用短路逻辑运算符的结果为false, a的结果为5
12 // 解析:该程序使用了短路逻辑运算符(&&),首先判断a<4的结果为false,则b的结果必定是false,所以不再执行第二个操作a++<10的判断,所以a的值为5.

 


条件运算符 ?:

也被称为三元运算符,该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。

 

1 variable x = (expression) ? value if true : value if false

 

 1 public class Test{
 2     public static void main(String[] args){
 3         int a,b
 4         a=10;
 5         // 如果a等于1成立,则设置b为20,否则为30
 6         b=(a==1)? 20:30;
 7         System.out.println("Value of b is: "+b);
 8      
 9         //如果a等于10成立,则设置b为20,否则为30
10         b=(a==10)?20:30;
11         System.out.println("Value of b is : "+b);
12      }
13 }
14 
15 
16 //运行结果: Value of b is :30
17 //              Value of b is :20

Instanceof 运算符

该运算符用于操作对象实例,检查该对象是否是一个特定糊弄(类类型或接口类型). 运算格式如下:

1 (Object reference variable) instanceof (class/interface type)

如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。例:

1 String name = "James";
2 boolean result = name instanceof String;  //由于name是String类型,所以返回真

如果被比较的对象兼容于右侧类型,该运算符仍然返回true,例:

 

 1 class Vehicle {}
 2 
 3 public class Car extends Vehicle {
 4     public static void main(String[] args){
 5        Vehicle a = new Car();
 6        boolean result = a instanceof Car;
 7        System.out.println(result);
 8     }
 9 }
10 
11 
12 //运行结果: true