【JavaSE】語言基礎(chǔ)3

摘要

  • 邏輯運算符和位運算符
  • 鍵盤錄入
  • 順序結(jié)構(gòu)和選擇結(jié)構(gòu)

邏輯運算符的基本用法

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

邏輯運算符&&和&的區(qū)別

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

位運算符的基本用法1

  • 位運算符有哪些
    • &(與),|(或),^(異或),~ (取反),>>(有符號右移),>>>(無符號右移),<<(左移)
    • &,|,^,~ 的用法
    • &:有0則0
    • |:有1則1
    • ^:相同則0,不同則1
    • ~:按位取反

位異或運算符的特點及面試題(掌握)

  • A:案例演示

    • 位異或運算符的特點

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

  • B:面試題:

    • 請自己實現(xiàn)兩個整數(shù)變量的交換(不定義第三個變量)
  •   1. x = x + y; 
         y = x - y; 
         x = x - y;(相加可能產(chǎn)生溢出)  
      2. x = x ^ y; 
         y = x ^ y; 
         x = x ^ y;
    

位運算符的基本用法2及面試題(了解)

  • A:案例演示 >>,>>>,<<的用法:
    • <<:左移 左邊最高位丟棄,右邊補齊0(左移幾位就是乘以2的幾次冪)
    • >>:右移 最高位是0,左邊補齊0;最高為是1,左邊補齊1(正數(shù)右移幾位就是除以2的幾次冪)
    • >>>:無符號右移 無論最高位是0還是1,左邊補齊0
    • 最有效率的算出2 * 8的結(jié)果 2<<3

三元運算符的基本用法

  • A:三元運算符的格式
  •   (關(guān)系表達式) ? 表達式1 : 表達式2;
    

三元運算符的練習

  • A:案例演示
    • 比較兩個整數(shù)是否相同x==y
  • B:案例演示
    • 獲取三個整數(shù)中的最大值
    • x>y?(x>z?x:z):(y>z?y:z)

鍵盤錄入的基本格式

  • A:為什么要使用鍵盤錄入數(shù)據(jù)
    • a:為了讓程序的數(shù)據(jù)更符合開發(fā)的數(shù)據(jù)
    • b:讓程序更靈活一下
  • B:如何實現(xiàn)鍵盤錄入呢?
    • 先照格式來。
    • a:導包
      • 格式:
        • import java.util.Scanner;
      • 位置:
        • 在class上面。
    • b:創(chuàng)建鍵盤錄入對象
      • 格式:
        • Scanner sc = new Scanner(System.in);
    • c:通過對象獲取數(shù)據(jù)
      • 格式:
        • int x = sc.nextInt();

順序結(jié)構(gòu)語句

  • A:什么是流程控制語句
    • 流程控制語句:可以控制程序的執(zhí)行流程。
  • B:流程控制語句的分類
    • 順序結(jié)構(gòu)
    • 選擇結(jié)構(gòu)
    • 循環(huán)結(jié)構(gòu)
  • C:執(zhí)行流程:
    • 從上往下,依次執(zhí)行。

選擇結(jié)構(gòu)if語句格式1及其使用 (掌握)

  • A:選擇結(jié)構(gòu)的分類

    • if語句
    • switch語句
  • B:if語句有幾種格式

    • 格式1
    • 格式2
    • 格式3
  • C:if語句的格式1

      if(比較表達式) {
          語句體;
      }
    
  • D:執(zhí)行流程:

    • 先計算比較表達式的值,看其返回值是true還是false。
    • 如果是true,就執(zhí)行語句體;
    • 如果是false,就不執(zhí)行語句體;

選擇結(jié)構(gòu)if語句注意事項

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

選擇結(jié)構(gòu)if語句格式2及其使用

  • A:if語句的格式2

      if(比較表達式) {
          語句體1;
      }else {
          語句體2;
      }
    
  • B:執(zhí)行流程:

    • 首先計算比較表達式的值,看其返回值是true還是false。

    • 如果是true,就執(zhí)行語句體1;

    • 如果是false,就執(zhí)行語句體2;

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

if語句的格式2和三元的相互轉(zhuǎn)換問題

  • A:案例演示
    • if語句和三元運算符完成同一個效果
  • B:案例演示
    • if語句和三元運算符的區(qū)別

    • 三元運算符實現(xiàn)的,都可以采用if語句實現(xiàn)。反之不成立。

    • 什么時候if語句實現(xiàn)不能用三元改進呢?

      • 當if語句控制的操作是一個輸出語句的時候就不能。
      • 為什么呢?因為三元運算符是一個運算符,運算符操作完畢就應(yīng)該有一個結(jié)果,而不是一個輸出。

選擇結(jié)構(gòu)if語句格式3及其使用

  • A:if語句的格式3:

      if(比較表達式1) {
          語句體1;
      }else if(比較表達式2) {
          語句體2;
      }else if(比較表達式3) {
          語句體3;
      }
      ...
      else {
          語句體n+1;
      }
    
  • B:執(zhí)行流程:

    • 首先計算比較表達式1看其返回值是true還是false,

    • 如果是true,就執(zhí)行語句體1,if語句結(jié)束。

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

    • 如果是true,就執(zhí)行語句體2,if語句結(jié)束。

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

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

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

選擇結(jié)構(gòu)switch語句的格式及其解釋

  • A:switch語句的格式

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

  • C:面試題

    • byte可以作為switch的表達式嗎?可以
    • long可以作為switch的表達式嗎?不可以
    • String可以作為switch的表達式嗎?可以
    • 基本數(shù)據(jù)類型可以接收byte,short,char,int;引用數(shù)據(jù)類型可以接收枚舉(JDK1.5)String(JDK1.7)
  • C:執(zhí)行流程

    • 先計算表達式的值
    • 然后和case后面的匹配,如果有就執(zhí)行對應(yīng)的語句,否則執(zhí)行default控制的語句

選擇結(jié)構(gòu)switch語句的注意事項

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

選擇結(jié)構(gòu)switch語句練習

  • A:看程序?qū)懡Y(jié)果:

      int x = 2;
      int y = 3;
      switch(x){
          default:
              y++;
              break;
          case 3:
              y++;
          case 4:
              y++;
      }
      System.out.println("y="+y);
      結(jié)果:y=4
    
  • B:看程序?qū)懡Y(jié)果:

      int x = 2;
      int y = 3;
      switch(x){
          default:
              y++;
          case 3:
              y++;
          case 4:
              y++;
      }
      System.out.println("y="+y);
      結(jié)果:y=6
    

選擇結(jié)構(gòu)if語句和switch語句的區(qū)別

  • A:總結(jié)switch語句和if語句的各自使用場景
  • switch建議判斷固定值的時候用
  • if建議判斷區(qū)間或范圍的時候用
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容