一、for循环
Scala中的for循环语句格式如下:
for( 变量 <- 表达式) 语句块
如果for循环的循环体以yield开始,则该循环会构建出一个集合
每次迭代生成集合中的一个值,如下:
val v = for (i <- 1 to 10) yield i * 10
println(v) //Vector(10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
其中,“变量<-表达式”被称为“生成器(generator)”
二、if 表达式
if 条件表达式,与Java的区别是可以当做表达式来用,可有返回值。
三、while 语句
与java的基本一致,不同点是scala同样也可以有返回值。
下面直接以代码来表述这些结构
package scalaBasic
object StructureDemo {
def main(args: Array[String]): Unit = {
// 1、for 循环
forTest()
jiuJiu // 函数的调用如果没有参数可以省去括号
println("----------------")
guardTest()
forByTest()
// 2、while
whileDemo()
// 3、if
val a = ifDemo()
println(a)
forArray()
}
// 1、for 循环
def jiuJiu(): Unit = {
for (i <- 1 to 9) {
for (j <- 1 to i) {
print(i + "*" + j + "=" + i * j + "\t")
}
println()
}
}
// for 循环中使用by修饰
def forByTest(): Unit = {
for (i <- 1 to 9 by 2)
println(i)
}
def forTest(): Unit = {
for (i <- 1 to 9; j <- 1 to 9) {
if (i == j)
println(i * j)
}
}
// for循环中使用守卫表达式
def guardTest(): Unit = {
for (i <- 1 to 9; j <- 1 to 9 if i == j) {
println(i * j)
}
}
def forArray(): Unit = {
val array = new Array[String](3)
array(0) = "aa"
array(1) = "bb"
array(2) = "cc"
for (a <- array)
println(a)
}
// 2、while
def whileDemo(): Unit = {
var a: Int = 1
var sum = 0
while (a <= 10) {
sum = sum + a
a = a + 1;
}
println(sum)
}
// 3、if 条件表达式,与Java的区别是可以当做表达式来用,可有返回值
def ifDemo(): Int = {
val a = 10
if (a < 10)
10
else
100
}
}