【KotlinとJava】forループを使う
KotlinとJava
今回はリストや配列に対してループを行うサンプルだ。いわゆるforEach
形式のfor文である。
Use a for-loop.kt
fun main(args: Array<String>) {
for (arg in args) {
println(arg)
}
println()
// or
for (i in args.indices) {
println(args[i])
}
}
for
繰り返し処理するのが単行の場合はブレース{}
は省略できるが、筆者のポリシーとしてつけさせていただいた。
すべての要素をについて繰り返し処理を行いたいのなら、上の書式を使えばよい。配列に対してインデックスを使ってアクセスを行うと、初期化やインクリメントで問題が発生することがある。
…と思っていたら、Kotlinではインデックスアクセスにもうまい方法が提供されていた。それがfor (i in args.indices)
だ。インデックスの変数が提供されているのだから、ブロックの中でi
の値を変更できてしまうのでは?つまり、次のようなことのできるのでは?と思うかもしれない。
for (i in args.indices) {
i++
println(args[i])
}
しかし、このような書き方はコンパイラが許してくれない。i
という変数はval(つまり変更不可)
で宣言されているようだ。これでインデックスアクセスもだいぶ間違いを排除することができるはずだ。
Javaで記述
対比ができるようにJavaでも同じものを記述してみよう。
public class Exp10 {
public static void main(String[] args) {
for (String arg : args) {
System.out.println(arg);
}
System.out.println();
// or
for (int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}
こちらはもはやおなじみだろう。
コメント
コメントを投稿