拡張 for 文で要素を書き換える
出力はどれか。
public class Main {
public static void main(String[] args) {
int[] a = {1, 2, 3};
for (int x : a) {
x *= 10;
}
System.out.println(a[0] + a[1] + a[2]);
}
}
- A
6 - B
60 - C
102030 - D コンパイルエラーになる
正解と解説を見る
正解: A
- A: 拡張 for の x は要素の値のコピーなので、配列は {1, 2, 3} のまま。合計して 6 です。
- B: x を書き換えても配列の要素は変わりません。
- C:
a[0] + a[1] + a[2]は int の足し算なので、文字列のように連結されません。 - D: ループ変数への代入は正しいコードです。
ポイント
- 拡張 for の変数 x は要素の値のコピーです。x を書き換えても配列は変わりません。
「配列 (一次元配列、二次元配列) の宣言、インスタンス化、初期化および使用」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)