一、测试环境
名称 | 版本 |
---|---|
操作系统 | Red Hat Enterprise Linux Server release 7.9 (Maipo) |
CPU | 12th Gen Intel® Core™ i7-12700H |
内存 | 5G |
JDK | 1.8.0_171 |
Scala | 3.1.2 |
二、想法
今天学习Scala语言的时候发现IF判断和FOR循环有返回值,当然while也有。只不过返回值为Unit,Scala和之前学习的C语言、Python不一样在这一点上,很有趣记录一下,我在代码上写了注释说明,方便大家理解。
三、源码
import scala.io.{Source, StdIn}
object TestScala_If_For {
def main(args: Array[String]): Unit = {
//scala语言中if和for循环是有返回值的
//if测试
TestIfReturn()
//for测试
TestForReturn()
}
def TestForReturn(): Unit = {
//如果没有加yield i这一段代码,例如循环体内只放一个i,是没有返回值的
//因为Scala并不知道你是想返回1到10之间的哪个数
println("start Scala For Test!!!")
val Result = for(i <- 1 to 10) yield i
println(Result)
}
def TestIfReturn(): Unit = {
println("start Scala If Test!!!")
println("Please Input A Int Value :")
val TestNum: Int = StdIn.readInt()
val ReturnStringVal: String = "Younger!!!"
//Any为所有类型的父类,
//if的返回值为分支条件中最后的一个值
//例如:
//当TestNum小于20时,返回值是一个字符串类型。
//当TestNum小于40时,返回值是一个整数类型。
val Result: Any = if (TestNum <= 20){
ReturnStringVal
}
else if (TestNum <= 40){
TestNum
}
else{
"older man!!!"
}
println(Result)
}
}
四、编译
[root@node0 src]# scalac TestScala_If_For.scala -d ../test/
五、测试结果
[root@node0 test]# scala TestScala_If_For
start Scala If Test!!!
Please Input A Int Value :
10
Younger!!!
start Scala For Test!!!
Vector(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
[root@node0 test]#
[root@node0 test]#
[root@node0 test]#
[root@node0 test]# scala TestScala_If_For
start Scala If Test!!!
Please Input A Int Value :
30
30
start Scala For Test!!!
Vector(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
[root@node0 test]#
[root@node0 test]#
[root@node0 test]#
[root@node0 test]# scala TestScala_If_For
start Scala If Test!!!
Please Input A Int Value :
80
older man!!!
start Scala For Test!!!
Vector(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)