vlambda博客
学习文章列表

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

      }

      }

    }