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
-------------------------------------------