Top > Scala > if / for / while


コマンドプロンプトで試した結果です。


if

ifの戻りを取得することができます。
関数型の強力な利点ですが、ちょっと慣れが必要かも。。

val acha = 1
-------------------------------------------
acha: Int = 1
-------------------------------------------

val porute = if( acha > 1 ) 2 else 3
-------------------------------------------
porute: Int = 3
-------------------------------------------

val piipo = if( acha > 4 ) 5 else if( porute == 6 ) 7 else System.nanoTime -------------------------------------------
piipo: Long = 48626256674388
-------------------------------------------

for

CやJavaのforとは違い、forの条件を1つずつ実行して処理します。
条件を付けたり、ネストして記載するようなforを1つにまとめることもできます。
カッコが違うのも。

for{ even <- 1 to 10 if even % 2 == 0 } println( even )
-------------------------------------------
2
4
6
8
10

-------------------------------------------
for{ even <- 1 to 3
   odd <- 1 to 5 if odd % 2 == 0} println( even * odd )
-------------------------------------------
1
3
5
2
6
10
3
9
15
-------------------------------------------

条件が複数ある時
for{ even <- 1 to 3
   odd <- 1 to 5 if odd % 2 == 0
   if even * odd < 10} println( even * odd )
-------------------------------------------
1
3
5
2
6
3
9
-------------------------------------------

println( 1 to 5 )
-------------------------------------------
1
2
3
4
5
-------------------------------------------

println( 6 until 10 )
-------------------------------------------
6
7
8
9
-------------------------------------------

while

特に注釈することはないのですが、continueやbreakがエラーになりますので、再帰呼び出しや終了条件を駆使する必要があります。

while (cnt < 10){
  cnt += 1
  println( cnt )
}
-------------------------------------------
1
2
3
4
5
6
7
8
9
10
-------------------------------------------



Copyright © 2015 AchaPorutePiipo All Rights Reserved.