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) } }