位运算
- & 按位与运算符 0&1=1,1&0=0,0&0=0,1&1=1
- | 按位或运算符 0&1=0,1&0=1,0&0=1,1&1=0
/**
* 10进制 2进制
* 0 0
* 1 1
* 2 10
* 3 11
* 4 100
* 5 101
* 6 110
*
* -----------------
* 1 1 0 1 1 0
* 1 0 1 0
* -----------------------
* 1 0 1 1 0 */
println(s"6&2=${6&2}")// 2--10
println(s"6|2=${6|2}")// 6--110
}
}
运算符的优先级
- 乘(*)除(/)模(%) > 加(+)减(-)
- 算术(+-*/%) > 关系(><>=!=) > 赋值(=)
- && > ||
val result = 10 - 2 + 3 * 4 /2
println(result)// ------14
val a = true
val b = true
val c = false
println(a||b&&c)// ------true
0.1+0.2 ==0.3 ? 精度问题
val a = 0.1
val b=0.2
val c=0.3
// 精度问题
println(1 +2 == 3)// true
println(0.1 + 0.2 ==0.3)// false
println(BigDecimal(0.1)+BigDecimal(0.2) == BigDecimal(0.3))// true
println(0.1+0.1==0.2)// true
大数运算
val a = 2147483647/////为Int的最大值
val b =1
val d = (a+b)/2 // ---bug
val c = a- (a-b)/2
println(c) // 1073741824
println(d)// -1073741824
// 大数运算
// 111111111111111+111111111111112
//val c :
BigDecimal(1121111111111111)+BigDecimal(111111111111)
- if 输入年龄,运行看是否成年
print("请输入年龄")
val age = scala.io.StdIn.readInt()
if( age >= 18){
println("成年")
}else{
println("未成年")
}
}
2.比较面积
// 读取用户输入的正方形边长
print("请输入正方形的边长:")
val a = scala.io.StdIn.readDouble()
// 读取用户输入的长方形长和宽
print("请输入长方形的长:")
val b = scala.io.StdIn.readDouble()
print("请输入长方形的宽:")
val c = scala.io.StdIn.readDouble()
// 比较面积并输出结果
if (b*c > a*a) {
println("长方形面积大")
} else if (b*c < a*a) {
println("正方形面积大")
} else {
println("一样大")
}
}
- 输入正整数分数,输出等级符号
print("请输入正整数分数:")
val a = scala.io.StdIn.readDouble()
if (90 <= a & a<= 100){
println("为A级")
}else if(80 <= a & a<= 89){
println("为B级")
}else if(70 <= a & a<= 79){
println("为C级")
}else if(60 <= a & a<= 69){
println("为D级")
}```
}else if(0 <= a & a <= 59) {
println("为E级")
} else {
println("输出有误")-----此步骤可省略
}