学习编程第8天

运算符02

 

逻辑运算符

        boolean a=true;
       boolean b=false;

       System.out.println("a && b:"+(a&&b));//与:两个变量都为真,结果才是true
       System.out.println("a || b:"+(a||b));//或:两个变量有一个为真,结果就是true
       System.out.println("!(a && b):"+!(a&&b));//非:如果是真,结果就是false,如果是假,结果就是true

 

结果是

a && b:false a || b:true !(a && b):true

 

短路运算

        boolean a=true;
       boolean b=false;
       System.out.println("a && b:"+(b&&a));

结果是

false

因为b已经是false了所以不运算后面的就直接输出结果“false”

        int c=5;
       boolean d=(c<4)&&(c++<8);
       System.out.println(d);

 

结果是false,尽管c++<8是true,但是因为c<4已经是false了且c<4在前,所以直接输出结果false

 

位运算

 

位运算中的逻辑运算:&,|,^,~

        /*
       A=0011 1100
       B=0000 1101

       A&B=0000 1100 (意思是A与B同一位上如果都是1,才是1,否则就是0)
       A|B=0011 1101 (意思是A与B同一位上如果有1,就是1,如果都是0,才是0)
       A^B=0011 0001 (意思是A与B同一位上如果相同,就是0,如果不相同,就是1)
       ~B =1111 0010 (取反,原本是0,结果就是1)
        */

 

怎样输出2*8最快?("<<",">>")

System.out.println(2<<3);

在二进制中0000 0010=2 0000 0100=4 0000 1000=8 0001 0000=16

"<<"意思是左移,相当于*2

">>"意思是右移,相当于/2

 

条件运算符

? :

x?y:z 意思是如果x==true,那么结果是y,否则结果是z

int score=80;
String type= score<60 ?"不及格":"及格";

System.out.println(type);//结果是"及格"

 

扩展赋值运算符

int a=10;
int b=20;

a+=b;//a=a+b
a-=b;//a=a-b

 

字符串连接符 +

int a=10;
int b=20;

System.out.println(a+b);
System.out.println(""+a+b);//如果+两侧有一侧是String类型的,
                          // 其他操作数都转换成String再进行连接

System.out.println(a+b+"");//如果字符串在后面,则先进行运算

结果分别是

30、1020、30

 

posted @ 2021-08-08 17:58  长椎  阅读(24)  评论(0)    收藏  举报