3. Scala運算符


3.1 運算符介紹 

      運算符是一種特殊的符號,用以表示數據的運算、賦值和比較等

      1) 算術運算符

      2) 賦值運算符

      3) 比較運算符(關系運算符)

      4) 邏輯運算符

      5) 位運算符

3.2 算術運算符

  3.2.1 介紹  

      算術運算符(arithmetic)是對數值類型的變量進行運算的,在Scala程序中使用非常多

  3.2.2 算數運算符一覽圖  

  3.2.3 案例演示  

      +,-,*,/,% 重點講解 /、%

      +、-、* 是一個道理,完全可以類推

      算數運算符的運算規則和Java一樣

object boke_demo01 {

  def main(args: Array[String]): Unit = {

    // / 的使用
    var r1: Int = 10 / 3 // 3
    println("r1=" + r1)
    var r2: Double = 10 / 3 // 3.0
    println("r2=" + r2)
    var r3: Double = 10.0 / 3 // 3.333333
    println("r3=" + r3)
    println("r3=" + r3.formatted("%.2f")) // 3.33

    // % 的使用
    // % 的運算的原則: a % b = a - a/b * b
    println(10 % 3) // 1
    println(-10 % 3) // -1  // -10 % 3 = (-10)- (-3) * 3 = -10 + 9 = -1
    println(-10 % -3) // -1 // -10 % -3 = (-10)- (3) * -3 = -10 + 9 = -1
    println(10 % -3) // 1

    // ++ 和 --
    // 說明,在scala中沒有 ++ 和 --, 而使用 +=1  和  -= 1
    var num1 = 10
    //num1++ 錯誤
    num1 += 1 // 替代 num1++
    //num-- 錯誤
    num1 -= 1 // 替代 num1--
    println(num1)

  }

}

  3.2.4 細節說明 

      1) 對於除號“/”,它的整數除和小數除是有區別的:整數之間做除法時,只保留整數部分而舍棄小數部分。例如:var x : Int = 10/3,結果是3

      2) 當對一個數取模時,可以等價a%b=a-a/b*b,這樣我們可以看到取模的一個本質運算(和Java的取模運算規則一樣)

      3) 注意:Scala中沒有++、--操作符,需要通過+=、-=來實現同樣的效果

3.3 關系運算符  

  3.3.1 基本介紹  

      1) 關系運算符的結果都是boolean型,也就是要么時true,要么是false

      2) 關系表達式經常用在if結構的條件中或循環結構的條件中

      3) 關系運算符的使用和Java一樣

  3.3.2 關系運算符一覽圖

  3.3.3 案例演示

object boke_demo01 {

  def main(args: Array[String]): Unit = {

    var a = 12
    var b = 9
    
    println(a > b) // true 
    println(a>=b) // true 
    println(a<=b) // false 
    println(a<b) // false 
    println(a==b) // false 
    println(a!=b) // true
    var flag: Boolean = a > b // true
  }

}

  3.3.4 細節說明 

      1) 關系運算符組成的表達式,我們稱之為關系表達式,a>b

      2) 比較運算符“==”不能誤寫成“=”

      3) 使用陷阱:如果兩個浮點數進行比較,應當保證數據類型一致

3.4 邏輯運算符 

  3.4.1 介紹 

      用於連接多個條件(一般來講就是關系表達式),最終的結果也是一個boolean值

  3.4.2 邏輯運算符一覽圖 

3.5 賦值運算符 

  3.5.1 介紹  

      賦值運算符就是將某個運算后的值,賦給指定的變量

  3.5.2 賦值運算符的分類  

  3.5.3 賦值運算符特點   

      1) 運算順序從右往左

      2) 賦值運算符的左邊只能是變量,右邊可以是變量、表達式、常量值/字面量

      3) 復合賦值運算符等價於下面的效果

        比如: a+=3 等價於 a=a+3

  3.5.4 位運算符

      位運算符的規則和Java一樣

  3.5.5 Scala不支持三目運算符,在Scala中使用if-else的方式實現

      val num = 5 > 4 ? 5 : 4 //沒有

      val num = if (5>4) 5 else 4 

3.6 運算符優先級  

      1) 運算符有不同的優先級,所謂優先級就是表達式中的運算順序

      2) 只有單目運算符、賦值運算符是從右向左運算的

      3) 運算符的優先級和Java一樣

      運算符優先級小結

        1. () []

        2. 單目運算

        3. 算術運算符

        4. 移位運算

        5. 比較運算符(關系運算符)

        6. 位運算

        7. 關系運算符

        8. 賦值運算

        9. ,

  3.6.1 運算符優先級一覽圖  

3.7 鍵盤輸入語句 

  3.7.1 介紹 

      在編程中,需要接收用戶輸入的數據,就可以就可以使用鍵盤輸入語句來獲取

  3.7.2 案例演示  

      要求:可以從控制台接收用戶信息[姓名,年齡,薪水]

import scala.io.StdIn

object boke_demo01 {

  def main(args: Array[String]): Unit = {

    /*
     要求:可以從控制台接收用戶信息,【姓名,年齡,薪水】
      */
    println("請輸入姓名")
    // alt + enter 自動導入包
    val name = StdIn.readLine()
    println("請輸入年齡")
    val age = StdIn.readInt()
    println("請輸入薪水")
    val sal = StdIn.readDouble()
    printf("用戶的信息為 name=%s age=%d sal=%.2f", name, age, sal)
    
  }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM