1. 程式人生 > >java初識第三天

java初識第三天

1:運算子(掌握)
    (1)算術運算子
        A:+,-,*,/,%,++,--
        B:+的用法
            a:加法
            b:正號
            c:字串連線符
        C:/和%的區別
            資料做除法操作的時候,/取得是商,%取得是餘數
        D:++和--的用法
            a:他們的作用是自增或者自減
            b:使用
                **單獨使用
                    放在操作資料的前面和後面效果一樣。
                    a++或者++a效果一樣。
                **參與操作使用
                    放在運算元的前面:先自增或者自減,再參與操作
                        int a = 10;
                        int b = ++a;
                    放在運算元的後面:先參與操作,再自增或者自減
                        int a = 10;
                        int b = a++;
    (2)賦值運算子
        A:=,+=,-=,*=,/=,%=等
        B:=叫做賦值運算子,也是最基本的賦值運算子
            int x = 10; 把10賦值給int型別的變數x。
        C:擴充套件的賦值運算子的特點
            隱含了自動強制轉換。
            
            面試題:
                short s = 1;
                s = s + 1;
                
                short s = 1;
                s += 1;
                請問上面的程式碼哪個有問題?
    (3)比較運算子
        A:==,!=,>,>=,<,<=
        B:無論運算子兩端簡單還是複雜最終結果是boolean型別。
        C:千萬不要把==寫成了=
    (4)邏輯運算子
        A:&,|,^,!,&&,||
        B:邏輯運算子用於連線boolean型別的式子
        C:結論
            &:有false則false
            |:有true則true
            ^:相同則false,不同則true。
                情侶關係。
            !:非true則false,非false則true
            
            &&:結果和&是一樣的,只不過有短路效果。左邊是false,右邊不執行。
            ||:結果和|是一樣的,只不過有短路效果。左邊是true,右邊不執行。
    (5)位運算子(瞭解)
        A:^的特殊用法
            一個數據針對另一個數據位異或兩次,該數不變
        B:面試題
            a:請實現兩個變數的交換
                **採用第三方變數
                **用位異或運算子
                    左邊a,b,a
                    右邊a^b
            b:請用最有效率的方式計算出2乘以8的結果
                2<<3
    (6)三元運算子
        A:格式
            比較表示式?表示式1:表示式2;
        B:執行流程:
            首先計算比較表示式的值,看是true還是false。
            如果是true,表示式1就是結果。
            如果是false,表示式2就是結果。
        C:案例:
            a:比較兩個資料是否相等
            b:獲取兩個資料中的最大值
            c:獲取三個資料中的最大值
            
2:鍵盤錄入(掌握)
    (1)實際開發中,資料是變化的,為了提高程式的靈活性,我們加入鍵盤錄入資料。
    (2)如何實現呢?目前就記住
        A:導包
            import java.util.Scanner;
            位置:在class的上邊
        B:建立物件
            Scanner sc = new Scanner(System.in);
        C:獲取資料
            int x = sc.nextInt();
    (3)把三元運算子的案例加入鍵盤錄入改進。

3:流程控制語句
    (1)順序結構 從上往下,依次執行
    (2)選擇結構    按照不同的選擇,執行不同的程式碼
    (3)迴圈結構 做一些重複的程式碼

4:if語句(掌握)
    (1)三種格式
        A:格式1
            if(比較表示式) {
                語句體;
            }
            
            執行流程:
                判斷比較表示式的值,看是true還是false
                如果是true,就執行語句體
                如果是false,就不執行語句體
        
        B:格式2
            if(比較表示式) {
                語句體1;
            }else {
                語句體2;
            }
            
            執行流程:
                判斷比較表示式的值,看是true還是false
                如果是true,就執行語句體1
                如果是false,就執行語句體2
                
        C:格式3
            if(比較表示式1) {
                語句體1;
            }else if(比較表示式2){
                語句體2;
            }
            ...
            else {
                語句體n+1;
            }
            
            執行流程:
                判斷比較表示式1的值,看是true還是false
                如果是true,就執行語句體1
                如果是false,就繼續判斷比較表示式2的值,看是true還是false
                如果是true,就執行語句體2
                如果是false,就繼續判斷比較表示式3的值,看是true還是false
                ...
                如果都不滿足,就執行語句體n+1
    (2)注意事項
        A:比較表示式無論簡單還是複雜,結果是boolean型別
        B:if語句控制的語句體如果是一條語句,是可以省略大括號的;如果是多條,不能省略。
            建議:永遠不要省略。
        C:一般來說,有左大括號,就沒有分號,有分號,就沒有左大括號。
        D:else後面如果沒有if,是不會出現比較表示式的。
        E:三種if語句其實都是一個語句,只要有一個執行,其他的就不再執行。
    (3)案例:
        A:比較兩個數是否相等
        B:獲取兩個數中的最大值
        C:獲取三個數中的最大值(if語句的巢狀)
        D:根據成績輸出對應的等級
        E:根據月份,輸出對應的季節
        F:根據x計算對應y的值並輸出
    (4)三元運算子和if語句第二種格式的關係
        所有的三元運算子能夠實現的,if語句的第二種格式都能實現。
        反之不成立。
        
        如果if語句第二種格式控制的語句體是輸出語句,就不可以。
        因為三元運算子是一個運算子,必須要有一個結果返回,不能是一個輸出語句。