Scala流程控制与返回值

本文介绍了Scala中流程控制的特性,包括如何定义带有返回值的流程控制、使用类似于三元运算符的表达式、for循环的使用,如until方法、对集合的遍历、循环守卫以及step步长的设定,包括正向和反向遍历。
摘要由CSDN通过智能技术生成

scala可以给流程控制定义一个返回值,用各个分支返回值的公共父类作为返回值类型

这里String是一个AnyRef,Int是一个AnyVal,公共父类是Any

在这里插入图片描述

Scala中没有java中的 a?b:c 三元运算符,但可以用类似的方法直接实现,且可读性更强

在这里插入图片描述

import scala.io.StdIn

object Test_IfElse {
  def main(args: Array[String]): Unit = {
    println("请输入您的年龄: ")
    val age: Int = StdIn.readInt()

    val result: Any =
      if (age >= 18) {
        println("成年")
        "成年"
      } else if (age < 0) {
        println("输入有误")
        "输入有误"
      } else {
        println("未成年")
        age
      }
    println(s"result: ${result}")

    //等效于java中的 age>18 ? "成年" : "未成年" ,即 a?b:c
    val res = if (age > 18) "成年" else "未成年"

    println(res)

  }

}

for 循环的使用

指定需要遍历的变量及其范围即可

object Test_ForLoop {
  def main(args: Array[String]): Unit = {
    //范围遍历
    for (i <- 1 to 10) {
      println(i + ". hello world")
    }
  }
}

本质是给 i 指定了一个初始值 1,调用了该Int类型的 to方法
Int.to(Int)
在这里插入图片描述

如果 for循环 遍历不包含边界值,可以使用 until 方法

在这里插入图片描述

可对集合直接进行遍历

在这里插入图片描述

在这里插入图片描述

循环守卫,作用类似于continue,不过判断为 false 时才 “continue”

在这里插入图片描述

step 步长问题

我们 ctrl+鼠标左键 点进to 或者until方法中
在这里插入图片描述
可见都调用了 Range方法,且除循环边界 end 外还可传入一个 step 的步长参数
进入Range方法或Range下的Inclusive方法
在这里插入图片描述
在这里插入图片描述
可以发现调用until或者to方法循环遍历都有三个参数,start、end和step
它们分别是起始值,结束值,步长,默认步长为1

使用 by方法 来对步长进行定义

在这里插入图片描述

在这里插入图片描述

效果如下
在这里插入图片描述

倒序输出问题,定义一个负的step即可

另外此时起始值必须大于结束值
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>