1. 程式人生 > 其它 >運算子+分支結構Java基礎

運算子+分支結構Java基礎

運算子


算術運算子

在Java中,使用算術運算子 + 、- 、* 、/ 表示加減乘除

取餘運算:%,餘數結果符號和被模數的符號相同

  1. (前)++:先自增1,後運算

    (後)++:先運算,後自增1

  2. (前)--:先自減1,後運算

    (後)--:先運算,後自減1

注:自增自減,資料型別不會改變

  1. 連線符 +

    只能使用在String型別之間或String型別和其他型別之間


賦值運算子

= 、+= 、*= 、%=

x += 1;     //賦值運算子不會改變x的資料型別
x = x + 1;  //兩式在一定情況下等價

比較運算子

!= 、== 、> 、< 、>= 、<= 、instanceof

數值型

  1. 比較運算子運算結果都為boolean型
  2. 比較大小的幾類運算子只能使用在數值型資料之間
  3. != 和 ==不僅可以使用在數值型別資料之間,還可以使用在其他引用型別變數之間

邏輯運算子

& 、&& 、| 、|| 、!、 ^(異或:相同為false,不同為true)

操作的都是boolean型別的變數,且結果也為boolean型


位運算子

<< (左移)、>>(右移)、 >>>(無符號右移)、 &(與)、 |(或)、 ^(異或)

注:

  1. 位運算子操作的都是整型型別
  2. <<,在一定範圍內,向左移動一位,相當於*2
  3. |>> ,在一定範圍內,向右移動一位,相當於/2

& 、| 、 ^,相當於將兩數二進位制的每一位進行對應操作


三元運算子

結構:(條件表示式)?表示式1 :表示式2;

注:

  1. 條件表示式的結果為boolean型
  2. 根據表示式真假,決定執行表示式1或表示式2
    • 當條件表示式為true時,執行表示式1
    • 當條件表示式為false時,執行表示式2
  3. 表示式1和2的要求是一致的
  4. 三元運算子可以巢狀使用,凡是可以用三元運算子的地方,都可以寫成if-else結構,反之則不成立
  5. 如果程式既可以使用三元運算子表示也可用if-else結構表示,優先選擇三元表示式(更為簡潔,執行效率高)

三種基本流程結構:

順序結構、分支結構、迴圈結構


分支結構

If-else結構

這裡用到了Scanner類,從控制檯(鍵盤)獲取資料

具體實現步驟:

  1. 導包

    import java.util.Scanner;
    
  2. Scanner例項化

    Scanner sca = new Scanner(System.in);
    
  3. 呼叫Scanner類的相關方法,來獲取指定型別的變數

    //通過上面例項化,使用sca
    sca.nextInt();   //int型
    sca.nextDouble();  //double型
    sca.next();      // String型
    

注:根據相應的方法,來輸入指定型別的值,如果輸入的型別不匹配時,會出現執行異常:InputMisMathExce,程式終止

說明:

  1. else結構是可選的(就近原則匹配)
  2. 針對條件表示式:
    • 如果多個條件表示式之間是“互斥”關係(沒有交集關係),判斷和執行語句位置可以隨意順序,結果準確
    • 如果多個條件表示式之間有交集的關係,需根據實際情況考慮清楚哪個執行語句該放在上面
    • 如果多個條件表示式之間有包含關係,通常情況下,需將範圍小的執行語句寫在範圍大的上面,否則小範圍語句沒有機會執行

隨機數函式

Math.random() 範圍[ 0.0 , 1.0)

預設為double型

改變隨機數範圍方法:

範圍[ a , b ]

(int)(Math.random()*(b-a+1) + a) //增加隨機數範圍,進行int強轉

equal:判斷字串是否一致

String s = "劉";
s.equal("林");   //判斷字串s是否和“林”是否相同,相同返回true,不同返回false

switch-case結構

結構:

switch(表示式){
    case 常量1:
        執行語句1;
        break;
      .......
          
          
     default:
        執行語句x;
}

說明:

  1. 根據switch表示式中的值,依次匹配各個case中的常量,一旦匹配成功,則進入相應case結構中,呼叫其執行語句;當呼叫執行語句以後,仍然繼續向下執行其他case結構中的執行語句,直到遇到關鍵字break或到達此switch-case結構末尾時結束
  2. break可以使用在switch-case結構中,表示一旦執行到此關鍵詞,就跳出switch-case結構
  3. switch結構中的表示式,只能是如下的6種資料型別之一:byte、short、char、int、列舉型別(JDK5.0)、String型別(JDK7.0)
  4. case之後只能宣告常量,不能聲明範圍
  5. break關鍵字是可選的
  6. default,相當於if-else結構中的else,也是可選的,位置靈活