1. 程式人生 > 其它 >學習程式設計第8天

學習程式設計第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