逻辑运算符与三元运算符

package operator;  
  
public class Demo02 {  
    static void main(String[] args) {  
        // 与(and)    或(or)   非(取反)  
        boolean a = true;  
        boolean b = false;  
  
        System.out.println("a && b:"+ (a && b));
        // false 逻辑与运算:两个变量都为真,结果才为真  
         
        System.out.println("a || b:"+(a || b));
		// true 逻辑或运算:两个变量有一个为真,结果才为真  
		
        System.out.println("!(a && b):"+!(a && b));
        // true 逻辑非运算:如果结果是真,则变为假;如果结果是假,则变为真  
  
        //短路运算  
        int c = 5;  
  
        boolean d = (c<4)&&(c++<5); //左边为假,右边不会运行  
  
        System.out.println(d); //false  
        System.out.println(c); //5  
  
        //分割线  
        System.out.println("==========================================");  
  
        /*  
        * A = 0011 1100;    
	    * B = 0000 1101;        
	    *----------------------------------        
	    * A&B = 0000 1100;  //与   同1为1,其他为0  
        * A|B = 0011 1101;  //或   有1为1,同0为0  
        * A^B = 0011 0001;  //异或  相同为0,其他为1  
        * ~B = 1111 0010;   //非   取结果的反面  
        *        
        *  2*8,怎么运算最快  
        *  2*8=16   2*2*2*2        
        *  << *2 左移  
        *  >> /2 右移  
        *        
        * 0000 0000   0        
        * 0000 0001   1        
        * 0000 0010   2        
        * 0000 0011   3        
        * 0000 0100   4        
        * 0000 1000   8        
        * 0001 0000   16        
        *        
        * */  
        System.out.println(2<<3);//16  
  
	    System.out.println("==================================================");  
  
        int e = 10;  
        int f = 20;  
  
        //e+=f; // e = e+f;  
        //e-=f; // e = e-f;  
        System.out.println(e);  
  
        //字符串连接符   + 运算符两侧,有一方出现了String类型,会把操作数都转换为String类型  
        System.out.println(e+f);//30  
        System.out.println(""+e+f); //1020 先算字符串,后组合  
        System.out.println(e+f+""); //30 先运算,后成为字符串  
  
		System.out.println("=============================================");  
  
        //三元运算符  
        // x ? y : z  
        //  如果x的值为true,x==true,则结果Y;如果x的值为false,x==false,则结果为z。  
        
        int score = 80;  
        String type = score < 60 ? "不及格" : "及格了"; // 必须掌握  
  
        System.out.println(type);  
  
        //优先级 ()  
        e = e*(e+f);  
        System.out.println(e);  
  
    }  
}
posted @ 2026-05-26 17:29  花时玉  阅读(15)  评论(0)    收藏  举报