开发者学堂课程【Scala 核心编程-基础:运算符优先级】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/609/detail/8907
运算符优先级
基本内容
一、 运算符优先级
二、 小结运算符的优先级
一、 运算符优先级
1、 运算符有不同的代先级别, 所谓优先级就是表达式运算中的运算顺序。如下表, 上一行运算符总优先于下一行。
2、 运算符优先级的一览图
(1) 首先看到这个箭头,越往上面,运算级越高;越往下面,运算级别越低。
(2) 标红的两条线,在 Scala 里面找到单目运算,什么叫单目运算呢?就是参与运算的只有一个变量,叫做单目运算,它是从右到左的,比如说对、取返或者是位。还有一个就是赋值运算,它也是从右向左,比如说它先把右边的结果拿到,再赋值给左边的变量。这两个是从右向左,其他的运算规则都是从左到右。
3、 只有单目运算符、赋值运算符是从右向左运算的。
4、 运算符的优先级和 Java一样。
二、 小结运算符的优先级
1、 ()、[ ]按照表格行数:第1行
2、 单目运算按照表格行数:第2行
3、 算数运算符按照表格行数:第3、4行
4、 移位运算符按照表格行数:第5行
5、 比较运算符按照表格行数:第6、7行(也叫关系运算符)
6、 位运算按照表格行数:第8、9、10行
7、 关系运算符按照表格行数:第11、12行
8、 赋值运算符按照表格行数:第13行
9、 ,运算符按照表格行数:第14行
(1) 举例:“,运算符“的使用(它的使用级别是最低的)
package com. atguigu. chapter03. notice
object Demo01 {
def main(args: Array[string] ): Unit = {
val num= if (5> 4) 5 else 4
//val num2= 5 > 4 ? 5 : 4 错误,这个语法不成立。
求三个数的最大值 首先定义两个数;
val n1 = 4
val n2 = 8
接着进行数字的判断;
val res = if (n1 > n2) n1 else n2
如果 n1大于 n2,那么返回 n1,否则返回 n2。
printl(“res
=
”+
res)
val
n3 = 11
res
= if (
res
> n3 )
res
else n3
// 如果上面的返回结果大于 n3,那么就返回上来的结果 ;否则的话返回 n3
printl(“res
=
”+
res)
//“,运算符”
printl(“hello”,“abc”,“kkk”)
}
}
运算结果:
res = 8
res = 11
(hello,abc,kkk)
(2) 但是由于“+”的运算级比“,”的运算级高,在接下来的程序中将优先执行“+”;
//“,运算符”
printl(“hello”,“abc” = “uuu”,“kkk”)
运行结果:
(hello,abc uuu,kkk)