for(変数 : 配列)を使うメリット
for(変数 : 配列)
code:java
int[] array = new int9999; ...
for (int k : array) {
...
}
for-eachループとも呼ぶ
普通のforと比べて、どう違うのだろう?
メリット
記述がスッキリする
新たに変数(i,j…)を宣言する必要がなくなり、配列をループしていることが一目でわかる
間違えて二重ループで同じ変数 i を使ってしまうことがない
デメリット
配列の添字は使えなくなる
code:java
for (int i = 0; i < array.length; i++) {
}
for (int k : array) {
// 配列の要素kを使えるが、kが配列の何番目かの要素かわからない
}
プログラムが速く動くかもしれないし、遅くなるかもしれない
正しい結果さえ出せば、コンパイラは好きなようにソースコードを解釈できる(最適化)
for(変数 : 配列)という書き方は、人間だけではなくコンパイラにとってもわかりやすいので、最適化がかけやすい(かもしれない)
差は微々たるものだから、読みやすさで判断してなるべくfor(変数 : 配列)を使ったほうがよい
他の言語の似た文法
code:javascript
for (let k of array) {
...
}
code:ruby
array.each do |k|
...
end