Scala 之控制結構(二)
阿新 • • 發佈:2018-12-25
一、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
}
}