JAVA語言基礎 +JAVA學習筆記-DAY03

03.01_Java語言基礎(邏輯運算符的基本用法)(掌握)

  • A:邏輯運算符有哪些
    • &,|,^,!
    • &&,||
  • B:案例演示
  • 邏輯運算符的基本用法

        class Demo1_Operator {
            public static void main(String[] args) {
                //&,|,^,!
                //int x = 10;
                //5 < x < 15
                //x > 5 & x < 15
                //邏輯與 & 並且and 遇false則false
                int a = 10;
                int b = 20;
                int c = 30;
                /*System.out.println(a < b & b < c);            //true & true = true
                System.out.println(a < b & b > c);              //true & false = false
                System.out.println(a > b & b < c);              //false & true = false
                System.out.println(a > b & b > c);              //false & false = false*/
    
                //邏輯或 或or 遇true則true
                /*System.out.println(a < b | b < c);                //true | true = true
                System.out.println(a < b | b > c);              //true | false = true
                System.out.println(a > b | b < c);              //false | true = true
                System.out.println(a > b | b > c);              //false | flase = false*/
    
                //邏輯異或 ^ 兩邊相同爲false,兩邊不同爲true
                /*System.out.println(a < b ^ b < c);                //true | true = false
                System.out.println(a < b ^ b > c);              //true | false = true
                System.out.println(a > b ^ b < c);              //false | true = true
                System.out.println(a > b ^ b > c);              //false | flase = false*/
    
                //邏輯非!
                System.out.println(!true); //false
                System.out.println(!!true); //true
            }
        }
    
  • 注意事項:

    • a:邏輯運算符一般用於連接boolean類型的表達式或者值。
    • b:表達式:就是用運算符把常量或者變量連接起來的符合java語法的式子。
      • 算術表達式:a + b
      • 比較表達式:a == b(條件表達式)
  • C:結論:
  • &邏輯與:有false則false。
  • |邏輯或:有true則true。
  • ^邏輯異或:相同爲false,不同爲true。
  • !邏輯非:非false則true,非true則false。
    • 特點:偶數個不改變本身。

03.02_Java語言基礎(邏輯運算符&&和&的區別)(掌握)

  • A:案例演示
    • &&和&的區別?
      • a:最終結果一樣。
      • b:&&具有短路效果。左邊是false,右邊不執行。
      • &是無論左邊是false還是true,右邊都會執行
  • B:同理||和|的區別?
  • C:開發中常用誰?
    • &&,||,!

03.03_Java語言基礎(位運算符的基本用法1)(瞭解)

  • A:位運算符有哪些
    • &,|,^,~ ,>>,>>>,<<
  • B:案例演示

    • 位運算符的基本用法1

    • &,|,^,~ 的用法

    • &:有0則0
    • |:有1則1
    • ^:相同則0,不同則1
    • ~:按位取反
      class Demo1_Operator {
      public static void main(String[] args) {
      /*
      * &,|,^,~ 的用法
      * &:有0則0
      * |:有1則1
      * ^:相同則0,不同則1
      * ~:按位取反
      */

              System.out.println(6 & 3);              //2
              System.out.println(6 | 3);              //7
              System.out.println(6 ^ 3);              //5 
              System.out.println(~6);                    //-7?                   
          }
      }
      /*
          110
      &   011
      -----------
          010
      
          110
      |   011
      -----------
          111
      
          110
      ^   011
      -----------
          101
      
          00000000 00000000 00000000 00000110     6的原碼反碼補碼都是本身
          11111111 11111111 11111111 11111001     對6取反
      -   00000000 00000000 00000000 00000001
      ---------------------------------------
          11111111 11111111 11111111 11111000     反碼
          10000000 00000000 00000000 00000111     原碼(-7)
      */
      

03.04_Java語言基礎(位異或運算符的特點及面試題)(掌握)

  • A:案例演示

    • 位(異或^)運算符的特點:
      一個數據對另一個數據位異或兩次,該數本身不變。

      System.out.println(5 ^ 10 ^ 10);//5
      System.out.println(5 ^ 10 ^ 5);//10
      
  • B:面試題:

    • 請自己實現兩個整數變量的交換(不需要定義第三方變量)

      int x = 10;
      int y = 5;
      
      //需要第三方變量,開發推薦用這種
      /*int temp;
      temp = x;
      x = y;
      y = temp;*/
      
      //不需要定義第三方變量,有弊端,有可能會超出int的取值範圍
      /*x = x + y;                //10 + 5 = 15
      y = x - y;              //15 - 5 = 10
      x = x - y;              //15 - 10 = 5*/
      
      //不需要第三方變量,通過^來做
      x = x ^ y;              //x= 10 ^ 5 
      y = x ^ y;              //y= 10 ^ 5 ^ 5 y = 10
      x = x ^ y;              //x= 10 ^ 5 ^ 10  x = 5
      

03.05_Java語言基礎(位運算符的基本用法2及面試題)(瞭解)

  • A:案例演示 >>,>>>,<<的用法:

    • <<:左移 左邊最高位丟棄,右邊補齊0(左移幾位就乘以2的幾次冪)
    • >>:右移 最高位是0,左邊補齊0;最高爲是1,左邊補齊1(向右移動幾位就是除以2的幾次冪)
    • >>>:無符號右移 無論最高位是0還是1,左邊補齊0
  • B:面試題:最有效率的算出2 * 8的結果

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

03.06_Java語言基礎(三元運算符的基本用法)(掌握)

  • A:三元運算符的格式
  • (關係表達式) ? 表達式1 : 表達式2;
  • B:三元運算符的執行流程
  • C:案例演示

    • 獲取兩個數中的最大值

      int x = 10;
      int y = 5;
      int z;
      z = (x > y) ? x : y;
      

03.07_Java語言基礎(三元運算符的練習)(掌握)

  • A:案例演示
    • 比較兩個整數是否相同

    • int x = 10;
      int y = 5;
      boolean z;
      z = (x == y) ? true : false;
  • B:案例演示

    • 獲取三個整數中的最大值

      //先比較任意兩個數的值,找出這兩個數中的最大值
      int temp = (a > b) ? a : b;
      //用前兩個數的最大值與第三個數比較,獲取最大值
      int max = (temp > c) ? temp : c;
      System.out.println("max =" + max);
      

03.08_Java語言基礎(鍵盤錄入的基本格式講解)(掌握)

  • A:爲什麼要使用鍵盤錄入數據
    • a:爲了讓程序的數據更符合開發的數據
    • b:讓程序更靈活一下
  • B:如何實現鍵盤錄入呢?
    • 先照格式來。
    • a:導包
      • 格式:
        • import java.util.Scanner;
      • 位置:
        • 在class上面。
    • b:創建鍵盤錄入對象
      • 格式:
        • Scanner sc = new Scanner(System.in);
    • c:通過對象獲取數據
      • 格式:
        • int x = sc.nextInt();
  • C:案例演示
    • 鍵盤錄入1個整數,並輸出到控制檯。
    • 鍵盤錄入2個整數,並輸出到控制檯。

03.09_Java語言基礎(鍵盤錄入的練習1)(掌握)

  • A:案例演示
    • 鍵盤錄入練習:鍵盤錄入兩個數據,並對這兩個數據求和,輸出其結果
  • B:案例演示
    • 鍵盤錄入練習:鍵盤錄入兩個數據,獲取這兩個數據中的最大值

03.10_Java語言基礎(鍵盤錄入的練習2)(掌握)

  • A:案例演示
    • 鍵盤錄入練習:鍵盤錄入兩個數據,比較這兩個數據是否相等
  • B:案例演示

    • 鍵盤錄入練習:鍵盤錄入三個數據,獲取這三個數據中的最大值

      import java.util.Scanner;                           //導包
      class Scanner {
          public static void main(String[] args) {
              Scanner sc = new Scanner(System.in);        //創建鍵盤錄入對象
      
              //鍵盤錄入練習:鍵盤錄入兩個數據,比較這兩個數據是否相等
              /*System.out.println("請輸入第一個整數:");
              int x = sc.nextInt();                       //將鍵盤錄入的數據存儲在x中
              System.out.println("請輸入第二個整數:");
              int y = sc.nextInt();                       //將鍵盤錄入的數據存儲在y中
      
              //boolean b = (x == y)? true : false;
              boolean b = (x == y);
              System.out.println(b);*/
      
              //鍵盤錄入練習:鍵盤錄入三個數據,獲取這三個數據中的最大值
              System.out.println("請輸入第一個整數:");
              int x = sc.nextInt();                       //將鍵盤錄入的數據存儲在x中
              System.out.println("請輸入第二個整數:");
              int y = sc.nextInt();                       //將鍵盤錄入的數據存儲在y中
              System.out.println("請輸入第三個整數:");
              int z = sc.nextInt();                       //將鍵盤錄入的數據存儲在y中
      
              //定義臨時變量記錄住比較出前兩個變量中的最大值
              int temp = (x > y) ? x : y;
              //將比較後的結果與第三個變量中的值比較,比較出三個數中的最大值
              int max = (temp > z) ? temp : z;
              System.out.println(max);
          }
      }
      

03.11_Java語言基礎(順序結構語句)(瞭解)

  • A:什麼是流程控制語句
    • 流程控制語句:可以控制程序的執行流程。
  • B:流程控制語句的分類
    • 順序結構
    • 選擇結構
    • 循環結構
  • C:執行流程:
    • 從上往下,依次執行。
  • D:案例演示
    • 輸出幾句話看效果即可

03.12_Java語言基礎(選擇結構if語句格式1及其使用)(掌握)

  • A:選擇結構的分類
    • if語句
    • switch語句
  • B:if語句有幾種格式
    • 格式1
    • 格式2
    • 格式3
  • C:if語句的格式1

  • if(比較表達式) {
    語句體;
    }
  • D:執行流程:
    • 先計算比較表達式的值,看其返回值是true還是false。
    • 如果是true,就執行語句體;
    • 如果是false,就不執行語句體;

03.13_Java語言基礎(選擇結構if語句注意事項)(掌握)

  • A:案例演示
    • a:比較表達式無論簡單還是複雜,結果必須是boolean類型
    • b:if語句控制的語句體如果是一條語句,大括號可以省略;
      • 如果是多條語句,就不能省略。建議永遠不要省略。
    • c:一般來說:有左大括號就沒有分號,有分號就沒有左大括號

03.14_Java語言基礎(選擇結構if語句格式2及其使用)(掌握)

  • A:if語句的格式2

  • if(比較表達式) {
    語句體1;
    }else {
    語句體2;
    }
  • B:執行流程:
    • 首先計算比較表達式的值,看其返回值是true還是false。
    • 如果是true,就執行語句體1;
    • 如果是false,就執行語句體2;
  • C:案例演示

    • a:獲取兩個數據中較大的值
    • b:判斷一個數據是奇數還是偶數,並輸出是奇數還是偶數
      class Demo_If {
      public static void main(String[] args) {

      //a:獲取兩個數據中較大的值
      /*int x = 10;
      int y = 20;
      int z;
      
      if (x > y) {
          z = x;
      }else {
          z = y;
      }
      
      System.out.println(z);*/
      
      //b:判斷一個數據是奇數還是偶數,並輸出是奇數還是偶數
      int num = 11;
      if (num % 2 == 0) {
          System.out.println(num + "是一個偶數");
      }else {
          System.out.println(num + "是一個奇數");
      }
      

      }
      }

    • 注意事項:else後面是沒有比較表達式的,只有if後面有。

03.15_Java語言基礎(if語句的格式2和三元的相互轉換問題)(掌握)

  • A:案例演示
    • if語句和三元運算符完成同一個效果
  • B:案例演示

    • if語句和三元運算符的區別

    • 三元運算符實現的,都可以採用if語句實現。反之不成立。

    • 什麼時候if語句實現不能用三元改進呢?

      • 當if語句控制的操作是一個輸出語句的時候就不能。
      • 爲什麼呢?因爲三元運算符是一個運算符,運算符操作完畢就應該有一個結果,而不是一個輸出。

03.16_Java語言基礎(選擇結構if語句格式3及其使用)(掌握)

  • A:if語句的格式3:

  • if(比較表達式1) {
    語句體1;
    }else if(比較表達式2) {
    語句體2;
    }else if(比較表達式3) {
    語句體3;
    }

    else {
    語句體n+1;
    }
  • B:執行流程:

    • 首先計算比較表達式1看其返回值是true還是false,
    • 如果是true,就執行語句體1,if語句結束。
    • 如果是false,接着計算比較表達式2看其返回值是true還是false,

    • 如果是true,就執行語句體2,if語句結束。

    • 如果是false,接着計算比較表達式3看其返回值是true還是false,

    • 如果都是false,就執行語句體n+1。

  • C:注意事項:最後一個else可以省略,但是建議不要省略,可以對範圍外的錯誤值提示

03.17_Java語言基礎(選擇結構if語句格式3練習)(掌握)

  • A:練習1
  • 需求:鍵盤錄入一個成績,判斷並輸出成績的等級。
    90-100 優
    80-89  良
    70-79  中
    60-69  及
    0-59   差
    
    import java.util.Scanner;
    class Test {
        public static void main(String[] args) {
            Scanner cin = new Scanner(System.in);
            int score = cin.nextInt();
            if(score>=90&&score<=100){
                System.out.println("優");
            }else if(score>=80&&score<90){
                System.out.println("良");
            }else if(score>=70&&score<80){
                System.out.println("中");
            }else if(score>=60&&score<70){
                System.out.println("及");
            }else if(score>=0&&score<60){
                System.out.println("差");
            }else{
                System.out.println("score輸入錯誤");
            }
    
        }
    }
    
  • B:練習2

    • 需求:

      • 鍵盤錄入x的值,計算出y的值並輸出。

      • x>=3 y = 2 * x + 1;

      • -1

03.18_Java語言基礎(選擇結構if語句的嵌套使用)(掌握)

  • A:案例演示
    • 需求:獲取三個數據中的最大值
    • if語句的嵌套使用。

03.19_Java語言基礎(選擇結構switch語句的格式及其解釋)(掌握)

  • A:switch語句的格式
  • switch(表達式) {
          case 值1:
            語句體1;
            break;
            case 值2:
            語句體2;
            break;
            …
            default:    
            語句體n+1;
            break;
    }
    
  • B:switch語句的格式解釋

    • 基本數據類型可以接收byte,short,char,int
    • 引用數據類型可以接收枚舉(JDK1.5)String字符串(JDK1.7)
  • C:面試題
    • byte可以作爲switch的表達式嗎? 可以
    • long可以作爲switch的表達式嗎? 不可以
    • String可以作爲switch的表達式嗎? 可以
  • C:執行流程
    • 先計算表達式的值
    • 然後和case後面的匹配,如果有就執行對應的語句,否則執行default控制的語句

03.20_Java語言基礎(選擇結構switch語句的練習)(掌握)

  • A:整數(給定一個值,輸出對應星期幾)

03.21_Java語言基礎(選擇結構switch語句的注意事項)(掌握)

  • A:案例演示
    • a:case後面只能是常量,不能是變量,而且,多個case後面的值不能出現相同的
    • b:default可以省略嗎?
      • 可以省略,但是不建議,因爲它的作用是對不正確的情況給出提示。
      • 特殊情況:
        • case就可以把值固定。
        • A,B,C,D
    • c:break可以省略嗎?
      • 最後一個可以省略,其他最好不要省略
      • 會出現一個現象:case穿透。
      • 最終我們建議不要省略
    • d:default一定要在最後嗎?
      • 不是,可以在任意位置。但是建議在最後。
    • e:switch語句的結束條件
      • a:遇到break就結束了
      • b:執行到switch的右大括號就結束了

03.22_Java語言基礎(選擇結構switch語句練習)(掌握)

  • A:看程序寫結果:
  • int x = 2;
    int y = 3;
    switch(x){
        default:
            y++;
            break;
        case 3:
            y++;
        case 4:
            y++;
    }
    System.out.println("y="+y);//y=4
    
  • B:看程序寫結果:


  • int x = 2;
    int y = 3;
    switch(x){
    default:
    y++;
    case 3:
    y++;
    case 4:
    y++;
    }
    System.out.println(“y=”+y);//y=6

03.23_Java語言基礎(選擇結構if語句和switch語句的區別)(掌握)

  • A:總結switch語句和if語句的各自使用場景
  • switch建議判斷固定值的時候用
  • if建議判斷區間或範圍的時候用
  • B:案例演示

    • 分別用switch語句和if語句實現下列需求:

      • 鍵盤錄入月份,輸出對應的季節

        import java.util.Scanner;
        class Test3_SwitchIf {
            public static void main(String[] args) {
        /** 鍵盤錄入月份,輸出對應的季節
        一年有四季
        3,4,5春季
        6,7,8夏季
        9,10,11秋季
        12,1,2冬季
        */
        Scanner sc = new Scanner(System.in);    //創建鍵盤錄入對象
        System.out.println("請輸入月份");
        int month = sc.nextInt();               //將鍵盤錄入的結果存儲在month
        /*switch (month) {
        case 3:
        case 4:
        case 5:
            System.out.println(month + "月是春季");
        break;
        case 6:
        case 7:
        case 8:
            System.out.println(month + "月是夏季");
        break;
        case 9:
        case 10:
        case 11:
            System.out.println(month + "月是秋季");
        break;
        case 12:
        case 1:
        case 2:
            System.out.println(month + "月是冬季");
        break;
        default:
            System.out.println("對不起沒有對應的季節");
        break;
        }*/
        
        //用if語句來完成月份對應季節
        if (month > 12 || month < 1) {
            System.out.println("對不起沒有對應的季節");
        }else if (month >= 3 && month <= 5) {
            System.out.println(month + "月是春季");
        }else if (month >= 6 && month <= 8) {
            System.out.println(month + "月是夏季");
        }else if (month >= 9 && month <= 11) {
            System.out.println(month + "月是秋季");
        }else {
            System.out.println(month + "月是冬季");
        }
        

        }
        }

03.24_day03總結

把今天的知識點總結一遍。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章