zoukankan      html  css  js  c++  java
  • Scala入门系列(二):条件控制与循环

    条件控制与循环

    if表达式

    • 定义:if表达式是有值的,就是if或者else中最后一行语句返回的值。
      • 例如:val isAdult = if (age > 18) 1 else 0
    • 类型推断:由于if表达式是有值的,而if和else子句的值类型可能不同,此时if表达式是什么类型呢?Scala会自动取两个类型的公共父类型。
      • 如果if后没有跟else,则默认else的值是Unit,也用()表示,类似java中的void或者null。
    • 写多行if语句:可以使用{}的方式,但推荐使用:paste和ctrl + D的方式。

    终结符

    默认情况下scala不需要终结符; 因为默认一行一句,但是如果你想在一行写多句,那么必须使用; 隔断,其次可以使用{}来进行块编码。

    缩进

    官方推荐代码缩进为2个空格,因为Scala代码很容易陷入很深的嵌套层级,如果有更多空格的话代码很容易就超出屏幕右边界。

    循环

    • while do:语义与java相同
    • for:只有简易版for语句
      • 例如:var n = 10; for(i <- 1 to n) println(i)
      • 或者使用until,表示不达到上限: var n = 10; for(i <- 1 until n) println(i)
      • 也可以对字符串进行遍历,类似java的增强for循环: for (c <- "hello World") print(c)
    • 跳出循环语句
      • 没有类似于java的break语句
      • 但是可以使用bool、return或者Breaks的break函数来替代使用
    import scala.util.control.Breaks._
    breakable{
      var n = 10
      for(c <- "hello world"){
        if(n == 5) break;
        print(c)
        n -=1
      }
    }
    

    高级for循环

    • 多重for循环:九九乘法表
    for(i <- 1 to 9; j <- 1 to 9){
      if(j==9){
        println(i*j)
      }else{
        print(i*j + " ")
      }
    }
    
    • if守卫:for循环中可以添加if判断,例如:取偶数

      • for (i <- 1 to 100 if i % 2 == 0) println(i)
    • for推导式:构造集合, 类似于python中的列表解析式

    scala> var list = for(i<- 1 to 10) yield i
    list: scala.collection.immutable.IndexedSeq[Int] = Vector(1, 2, 3, 4, 5, 6, 7, 8
    , 9, 10)
    
  • 相关阅读:
    Java Servlet-http协议
    ajax-典型应用-添加购物车
    ajax-典型应用-验证用户名
    jquery学习--选择器
    jquery---helloworld
    java转换json需导入的jar包说明
    vue对象更新
    解决方法:linux中无法使用root用户ssh远程登录
    related_name和related_query_name举例区别
    numpy 通用函数
  • 原文地址:https://www.cnblogs.com/LiCheng-/p/8017407.html
Copyright © 2011-2022 走看看