package answers.section3; import java.util.Arrays; import java.util.List; public class S302ForEachInsteadOfFor { public S302ForEachInsteadOfFor() { rewriteSimpleLoop(); rewriteSimpleLoopAnswer1(); } private void rewriteSimpleLoop() { List<Integer> numbers = Arrays.asList(10, 5, 2, 20, 12, 15); int sum = 0; for (Integer number: numbers) { sum += number; } System.out.println(sum); } private int sum = 0; private void rewriteSimpleLoopAnswer1() { List<Integer> numbers = Arrays.asList(10, 5, 2, 20, 12, 15); // forEach メソッドで置き換え // ローカル変数への再代入ができないため、sum をフィールドで宣言 // ただし、この方法は外部の変数にアクセスするため、おすすめしない // 4 章で扱う Stream API を使用すべきです numbers.forEach(number -> { sum += number; }); System.out.println(sum); } public static void main(String... args) { new S302ForEachInsteadOfFor(); } }