Java第2章:變數和運算子

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png
邏輯與或同按位與或是有一定區別的:
相同點是:都能參與邏輯運算,按位與或完全可以代替邏輯與或; – 區別是:按位與或可以參與位運算,邏輯與或只能參與邏輯運算, 邏輯與或可以“短路”,按位與或不能“短路”。 • 短路運算 – 作用運算子:邏輯與&&,邏輯或|| 如(1):邏輯表示式:a>b && c>d 假設a>b 為false,c>d為true,那麼整個表示式結果為false; 假設a>b 為false,c>d為false,那麼整個表示式結果還為false; 可見,a>b的結果已經決定了整個表示式的結果,而後面的 c>d並不影響表示式的結果,可以說後半部分被“短路”了。 如(2):邏輯表示式: a>b || c>d 假設a>b 為true,那麼後半部分表示式將被“短路”;
&&:
短路與(並且),兩邊都為真則為真,見false則false
如果第1個數為false,則發生短路(第2個數不走了)
||:
短路或(或者),有一邊為真則為真,見true則true
如果第1個數為true,則發生短路(第2個數不走了)
! :
邏輯非(取反),非真則假,非假則真
&按位與
& 既是位運算子又是邏輯運算子,&的兩側可以是int,也可以是boolean表示式,當&兩側是int時,要先把運算子兩側的數轉化為二進位制數再進行運算,而短路與(&&)的兩側要求必須是布林表示式。
注意 :&為真的條件是兩側表示式都為真,但是即使我們判斷出左側表示式的值為false,程式也還是要繼續執行去判斷右側的表示式值的真假。
int i=2,j=4; System.out.println((++i==2)&(j++==4));//false System.out.println("i="+i+" ,j="+j);//3,5 System.out.println(12&5);//與運算12=(1100)25=(0101) 1100+0101=0100 4 System.out.println((2==2)&(4==4));//真真 true System.out.println((2==2)&(4!=4));//真假 false System.out.println((2!=2)&(4==4));//假真 false System.out.println((2!=2)&(4!=4));//假假 false
|按位或
(|)和(||)成立的條件是隻要一側表示式為真,結果就為真,在(|)運算時,無論左側的表示式的值為真還是為假,都要判斷右側的表示式的值的真假,而(||)在運算時,只要左側表示式的值為真,就不再判斷右側表示式的值了
三元運算:

image.png

image.png

image.png

image.png
關係程式碼:
package com.neusoft.demo01; /** * 變數 * 可變的量,像一個容器一樣,可以儲存程式執行時產生的中間值。 * * 如何建立一個變數,建立變數有什麼規範? * 語法:資料型別變數名 = 初始值; * 變數名(類名)識別符號,它是有一定規範的:命名規範:userNameuser_name 在符合了規則和規範的同時,還要保證標示符能夠正確的傳達它的含義。 Java中常用資料型別(兩大類):基本資料型別引用型別 1.基本資料型別(8種):整型(byte short int預設long)浮點型別(floatdouble預設)字元型(char)布林型別(boolean) * 注意:變數一定要先初始化,然後才能使用。String不是基本型別,它是引用型別 * * 2.資料型別的轉換 * * @author ttc * */ public class VarDemoTest { public static void main(String[] args) { //******************************變數以及資料型別**********************************start //定義變數 //int id = 12; //double salary = 3.14; //char sex='m'; //String name = "張三"; //boolean isRight = false;//true //float sal = 33.33F; // //System.out.println(id); //System.out.println(salary); //System.out.println(sex); //System.out.println(name); //System.out.println(isRight); //System.out.println(sal); //******************************變數以及資料型別**********************************end //******************************基本資料型別轉換(自動型別轉換強制型別轉換)**********************************start //byte, short, int , long, 分別 1,2,4,8個位元組float,double,分別是4,8個位元組; //1.自動型別轉換 int a = 12; double d = a; System.out.println(d);//12.0 //2.強制型別轉換 float f = (float) 3.14;//3.14 System.out.println(f); double dd = 12.34; int aa = (int) dd; System.out.println(aa); //3. +的用法(1.進行加法運算2.可以用來連線) //任何資料型別與String型別連線,最終的結果都是String String ddd = a+"555"+dd; System.out.println(ddd);//double byte aaaa = 12; byte bbbb = 12; int cccc= aaaa+bbbb; System.out.println(cccc); //******************************基本資料型別轉換**********************************end //******************************基本運算子**********************************start //算術運算子 + - * / % ++ -- int aaa = 0; int bbb = aaa++; System.out.println("bbb="+bbb); int ccc = ++aaa; System.out.println("ccc="+ccc); int result = (aaa++)+(++aaa)+(++aaa)+(aaa++);//(aaa++)=0 aaa=aaa+1 (++aaa)=2(++aaa)=3 (aaa++)=3 aaa = aaa+1 System.out.println(result); //賦值運算子 =複合賦值運算子x+=y(x = x + y)x-=y(x = x-y)x/=y x = x/y)x*=y(x = x*y)x%=y(x = x%y) //關係運算符:所有的關係運算的結果都是boolean型的> >= < <= != == System.out.println(4>3); System.out.println(4==4);//注意:==與=的區別 //邏輯運算子:參與邏輯運算的都是boolean值,其結果也是boolean值;&&與||或!非 //a&&(&位與)b結果a||(|位或)b結果!結果 //truetruetruetruetruetrue!truefalse //truefalsefalsetruefalsetrue //falsetruefalsefalsetruetrue //falsefalsefalsefalsefalsefalse boolean a1 = true; boolean b1 = false; boolean c1 = a1 && b1; System.out.println(!c1); //邏輯與和邏輯 或的操作都是短路的,拿邏輯與為例,如果參與運算的前面表示式是false的話,那麼就不會計算後面的表示式,結果直接就是false; //(4>7)&(3<2)-------false兩個表示式都需要判斷 //注意:&&與&的區別 //?: 運算子(三元): 唯一的能進行邏輯分支運算的運算子,唯一的一個三元運算子 //語法:X = (boolean表示式)?值1 :值2; 如果boolean表示式的值是true,則返回值1,否則返回值2; int x = (4>3) ? 1 : 2; System.out.println(x); //******************************基本運算子**********************************end } }