學習程式設計第8天
阿新 • • 發佈:2021-08-08
邏輯運算子
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
結果是
短路運算
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