1. 程式人生 > >Scala 之控制結構(二)

Scala 之控制結構(二)

一、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 = {
    // 1for 迴圈
    forTest()
    jiuJiu           // 函式的呼叫如果沒有引數可以省去括號
    println("----------------")
    guardTest()
    forByTest()
    // 2while
    whileDemo()

    // 3
if val a = ifDemo() println(a) forArray() } // 1for 迴圈 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) } // 2while def whileDemo(): Unit = { var a: Int = 1 var sum = 0 while (a <= 10) { sum = sum + a a = a + 1; } println(sum) } // 3if 條件表示式,與Java的區別是可以當做表示式來用,可有返回值 def ifDemo(): Int = { val a = 10 if (a < 10) 10 else 100 } }