(一)算术运算符
内容
- 加 +
- 减 -
- 乘 *
- 除 /
- 取余 % //eg: 5%2 就是5除以2的余数, 5%2=1
eg:
//算术运算符
//数据类型 7:Int
// 4:Int
// 7/4结果是Int
println(7/4) //7/4=1
println(7/4.0) //7/4=1
println(7%4) //3
println(7-4) //3
println(7+4) //11
println(7*4) //28
注意*:7/4 =1,7/4.0=1.75*。原因是整数除法和浮点数除法的区别导致的1。 浮点数除法(
7/4.0)如果其中一个操作数是浮点数(如4.0),Scala 会执行浮点数除法,结果会保留小数部分。因此7/4.0计算为1.75
(二)关系运算符
内容
eg:
//关系运算符: > < == >= !=
// false true
val a:Boolean =3>2
println(a)
println(7==4) //false
println(7>4) //true
println(7!=4) //true
println(7<4) //false
println(7>=4) //true
println(7<=4) //false
(三)逻辑运算符
内容
eg:
`
//逻辑运算符
/*
&&(并且) 全部为true ===>true
||(或者) 有一个为true ===>true
!(取反)
*/
// println(1>2 && 3>4)
// println(2>1 && 4>3)
//println(1>2 || 3>4 || 5>6) //false
//println(1>2 || 4>3) //true
println(!(1>2)) //t
`
(一)练习题
问: 判断一个年份是否是闰年 根据国际标准,一个年份被视为闰年的条件是,如下条件满足任意一个:
(1)能够被4整除,并且不能被100整除的年份是闰年。
(2)能够被400整除的年份同样也是闰年。
答案如下
object base07 {
def main(args: Array[String]): Unit ={
//判断闰年
/*
1.让用户输入一个整数,表示年份
2.判断这个年份是不是闰年
3.输出结果
*/
val year: Int = scala.io.StdIn.readLine("请输入年份:").trim.toInt
// 2020 ===>2000是闰年
// 2024 ===>2024年是闰年
// 2025 ===>2025年不是闰年
// 1900 ===>1900年不是闰年
//如果你定义了一个变量,并且之后并不打算修改她的值,那么建议使用val
var result:Boolean =( (year%4==0 && year%100!=0 ) ||(year%400 == 0))
if (result ){
println(s"$year 是闰年")
}
else{
println(s"$year 不是闰年")
}
}
}
运行如下
(四)赋值运算符
内容
-
= 简单的赋值运算,指定将右边操作数赋值给左边的操作数
-
+= 相加后再赋值,将左右两边的操作数相加后再赋值给左边的操作数
-
-= 相减后再赋值,将左右两边的操作数相减后再赋值给左边的操作数
-
*= 相乘后再赋值,将左右两边的操作数相乘后再赋值给左边的操作数
-
/= 相除后再赋值,将左右两边的操作数相除后再赋值给左边的操作数
-
%= 求余后再赋值,将左右两边的操作数进行求余操作后再赋值给左边的操作数
eg:
//赋值运算符
var a = 1 //把右边的计算结果保存到左边的变量
//a += 2 // a+=2 等价于 a=a+2
print(a)//
//a-=3 //a-=3 等价于a=a-3
println(a) //
a*=3
println(a) //
a /= 4
println(a) //
a %=5
println(a) //
(五)Scala的位运算符
(一)10进制转成2进制
内容
常用的位运算符如下:
1. & 按位与运算符。0&1 = 0, 1&0= 0 , 0&0 = 0, 1&1 = 1
2. | 按位或运算符。0|1 = 1, 1|0= 1 , 0|0 = 0, 1|1 = 1
3. ^ 按位异或运算符。0^1 = 1, 1^1= 0, 0^0 = 0
4. ~ 按位取反运算符
5. << 左移运算符。右边补零,放大。
6.>> 右移运算符。左边补零,缩小。
eg:
var a = 5; // 101
var b = 4 // 100
println("5 & 4 =" + (5&4) ) // 0
println("5 | 4 =" + (5|4) ) // 5
(六) Scala中运算符的优先级
内容
基本规则:
1. 乘(*)除(/)模(%) > 加(+)减(-)
2. 算术(+-*/%) > 关系(><>=!=) > 赋值(=)
3. && >
eg:
val a = true
val b = false
val c = false
println(a || b && c) //先算&& 再算|| true
println((a || b) && c) // 先算括号里面的 false
`