Scala 运算符和流程控制
运算符是一种特殊的符号
算术运算符
赋值运算符
比较运算符(关系运算符)
逻辑运算符【与,或,非】
位运算符 (位运算 ~ | ^ >> << >>>...)
以上规则和Java一样
注意:Scala中没有++、--操作符,需要通过+=、-=来实现同样的效果
在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取。scala.io.StdIn
程序流程控制
Scala语言中控制结构和Java语言中的控制结构基本相同,在不考虑特殊应用场景的情况下,
代码书写方式以及理解方式都没有太大的区别
Scala中是没有三元运算符,因为可以用 if(flg) 1 else 0 简写
如果大括号{}内的逻辑代码只有一行,大括号可以省略, 这点和java 的规定一样
Scala中任意表达式都是有返回值的,也就意味着if else表达式其实是有返回结果的,
具体返回结果的值取决于满足条件的代码体的最后一行内容.
在scala中没有switch,而是使用模式匹配来处理
Scala 也为for 循环这一常见的控制结构提供了非常多的特性,
这些for 循环的特性被称为for 推导式(for comprehension)或for 表达式(for expression)
for(i <- 1 to 3) 前闭后闭
for(i <- 1 until 3) 前闭后开
循环守卫,即循环保护式(也称条件判断式,守卫)。保护式为true则进入循环体内部,为false则跳过,类似于continue
scala 中的循环break 奇奇怪怪的搞法,还得导类
import util.control.Breaks._
var sum = 0
var k =0
breakable {
for (i <- 1 to 10) {
sum = sum + i
if (sum > 20) {
k = i
break()
}
}
}
变量需要声明在do...while循环的外部,
那么就等同于循环的内部对外部的变量造成了影响,所以不推荐使用,而是推荐使用for循环
嵌套循环建议一般使用两层,最多不要超过3层
Scala 实现九九乘法表:
for(i <- 1 to 9;j <- 1 to 9) {
if(j<i)
{
print(i.toString() + "*" + j.toString() + "=" + (i * j).toString())
print(" ")
}
if (i == j) {
println(i.toString() + "*" + j.toString() + "=" + (i * j).toString())
}
}
}