3.1 选择结构

Scala同样提供了对程序流程控制的语法。Scala中的程序流程控制结构虽然与Java类似,但也有自己的一些独特的方法。

选择结构

Scala的if/else语法结构和Java或者C++一样。不过,在Scala中if/else表达式会返回一个值,这个值就是跟在if或else之后的表达式的值。

val x = if (a) y else z

请看下面的示例代码:

val age = 19

// 单分支选择结构
if (age > 20) {
println(222)
}

// 双分支选择结构
if (age > 20) {
println(444)
} else {
println(555)
}

// 多分支选择结构
if (age < 18) {
println(666)
} else if (age <= 36) {
println(777)
} else if (age <= 60) {
println(888)
} else{
println(999)
}

// 三元运算符
if(!true) 1 else 0

输出结果如下:

age: Int = 19 
222
555
777

res110: Int = 0

在scala中,更经常是将if语句作为表达式来使用。在Scala中,每个表达式都有值。执行下面的代码:

val score = 60
if(score>=60) "及格" else "不及格"

val result = if(score>=60) "及格" else "不及格"   // 作为表达式,值赋给变量result

val result1 = if(score>=60) "及格" else 0       // 注意:返回的是公共类型Any

val result2 = if(score<60) "不及格"             // 等同于if(score<60) "不及格" else ()

输出结果如下:

score: Int = 60 
res37: String = 及格
result: String = 及格
result1: Any = 及格
result2: Any = ()

示例

【例】请编写scala代码,计算工人报酬。计算原则如下:前40个小时,按小时付报酬,每小时50元;超过40小时,应该付1.5倍报酬。

import scala.io.StdIn

object Test {
def main(args: Array[String]): Unit = {
  // 基本报酬标准
  val reward = 50.00

  // 动态输入工时
  val workHours = StdIn.readLine("请输入工时:")

  // 将输入工时转换为整数
  val workHoursInt = workHours.toInt

  // 计算报酬总额
  var payment = 0.0
  if(workHoursInt<=40){
    payment = workHoursInt * reward
  }else{
    payment = 40 * reward + (workHoursInt-40)*(reward*1.5)
  }

  // 输出结果
  println(s"工作时长${workHours}小时,应付报酬$payment")
}
}
© 版权声明
THE END
喜欢就支持一下吧
点赞144赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

夸夸
夸夸
还有吗!没看够!
取消
昵称表情代码图片

    暂无评论内容