目次
01. 拡張for文とは
02. breakとcontinue
拡張for文とは
拡張for文の構造
カウントする変数を使わないため拡張for文と呼ばれます。
配列やコレクションの値をループで順番に取得します。
for( データ型 変数1 : 配列やコレクションの変数2 ){ 実行される処理(変数1を使用する) } |
配列の値を取得
public class Test1 {
public static void main(String[] args) {
int array[] = {1, 2, 3};
for (int i: array){
System.out.println(i); // 1 2 3が出力される
}
}
}
3行目は、配列です。
5行目のarrayは配列の変数です。
5行目のiは配列の値で6行目でそれぞれ出力されます。
リストの値を取得
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test1 {
public static void main(String[] args) {
List<String> c = new ArrayList<>(Arrays.asList("1","2","3"));
for (String a : c) {
System.out.println(a); // 1 2 3が出力される
}
}
}
7行目は、リストです。
9行目のcはリストの変数です。
9行目のaはリストの値で10行目でそれぞれ出力されます。
マップのキーと値を取得
import java.util.HashMap;
import java.util.Map;
public class Test1 {
public static void main(String[] args) {
Map<String,String> color = new HashMap<>();
color.put("a", "red");
color.put("b", "yellow");
color.put("c", "blue");
for (Map.Entry<String, String> c1 : color.entrySet()) {
System.out.println(c1.getKey());// a b c
System.out.println(c1.getValue());// red yellow blue
}
}
}
6行目は、マップです。
11行目のcolorはマップの変数です。
11行目のc1はマップの値で12,13行目でそれぞれ出力されます。
12行目はマップのキーで、13行目はマップの値です。
ループを抜ける(break)
breakでループを抜けるサンプルです。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test1 {
public static void main(String[] args) {
List<String> c1 = new ArrayList<>(Arrays.asList("1","2","3"));
for (String a : c1) {
if (a == "2"){
break;
}
System.out.println(a); // 1が出力される
}
}
}
11行目は、breakで拡張for文のループから抜けます。
結果「1」のみ出力されます。
ループの先頭に戻る(continue)
continueでループの先頭に戻るサンプルです。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test1 {
public static void main(String[] args) {
List<String> c1 = new ArrayList<>(Arrays.asList("1","2","3"));
for (String a : c1) {
if (a == "2"){
continue;
}
System.out.println(a); // 1 3が出力される
}
}
}
11行目は、continueで拡張for文の先頭(9行目)に戻ります。
結果「1」と「3」が出力されます。
関連の記事
Java for文 処理を繰り返す(break/continue)
Java 配列の仕組みと使い方のサンプル
Java 配列からリスト・セットを作成(addAll/asList)