こんにちは!ぐちです。
構文シリーズの第二弾!今回はループ処理のご紹介です。ループ処理にはいくつかありますが、今回はwhile
文にフォーカスします。JavaもScalaもほとんど違いはないので、さくっとコードを見て頂く感じになるかなーと思います。笑
前回のVol.10はこちらからどうぞ。
while文
1から5までの等差級数の和を求めるプログラムを書いてみたいと思います。まずはいつも通りJavaからですね!
Java
public class Main { public static void main(String[] args) { int a = 5; int b = 0; while(a != 0) { b += a; a--; } System.out.println(b); } }
色々な書き方ができますし、上記の例が正しいかどうかは置いておいて(笑)、とりあえずwhile文
の動きを見れればと思います。笑
Scala
上記のJavaのコードをScalaで書くと下記のようになります。
object Main { def main(args: Array[String]): Unit = { var a = 5 var b = 0 while(a != 0) { b += a a -= 1 } println(b) } }
なーんの変哲もない同じコードを書くことになっちゃいましたが、while文
に関して言えばほとんど同じです。強いて今回プッシュするとすれば、インクリメント演算子ですかね。笑
インクリメント演算子
インクリメント演算子、デクリメント演算子はJavaでいうところの++
や--
があり非常に便利なのですが、イミュータブルな変数を基本としているためか(理由はわかりませんが)Scalaにはこの演算子がありません。ですので、a -= 1
のように書くことになります。
最後はwhile文
ではなく話が逸れてしまいましたが、今回はこの辺で。