繰り返し処理 (拡張for)

2010 年 4 月 20 日 火曜日  【 カテゴリー: Javaの基本


今回は繰り返し処理の1つである「拡張for文」についてみていきます。
「拡張for文」はリストやハッシュテーブルなどのデータ構造の各要素に対して、与えられた文の実行を繰り返すというループを記述するための文です。Java 5.0 で導入されています。

基本構文

for(変数 : リスト等) {
 {
    繰り返し処理
}

この条件文は次のような手順で実行されます。 ※wikipedia引用

  1. 変数にリストの中のある要素への参照を代入する。
  2. 繰り返し処理を実行する。
  3. リストの全要素を参照し終わっていない場合は、
    変数に未参照の要素を代入して文の実行へ戻る。

この形式は拡張for文などと呼び、Java 5.0 で導入されました。for文の特殊なものとして捉えられますが、他言語におけるforeach文に相当します。

サンプル

public class sample01 {
    public static void main(String[] args) {
    	int data[] = {1,3,5,7,9};
        for(int i : data){
            System.out.print(i);
        }
    }
}
13579

「拡張for文」は配列やコレクションの要素を順番に取り出して処理します。
3行目で配列を定義し値を代入しました。
4行目で配列から要素を順番に1つ取り出し変数i に代入しています。
拡張for文の処理である5行目は要素の数だけ繰り返されます。

break

public class sample01 {
    public static void main(String[] args) {
    	int data[] = {1,3,5,7,9};
        for(int i : data){
        	if(i == 5){
	            break;
        	}else{
        		System.out.print(i);
        	}
        }
    }
}
13

拡張for文で、全ての要素を繰り返す前にループから抜けるには「break文」を使います。繰り返し処理ではif文により変数i が5であるかどうか判定しています。ifの条件式を満たした場合は6行目でbreak文が処理され繰り返し処理から抜けます。

continue

public class sample01 {
    public static void main(String[] args) {
    	int data[] = {1,3,5,7,9};
        for(int i : data){
        	if(i == 5){
	            continue;
        	}
        	System.out.print(i);
        }
    }
}
1379

break文はそこで繰り返し処理を終了しfor文から抜けました。continue文も処理は終了するのですがfor文から抜けるのではなく次の繰り返し処理に移ります。
サンプルでは変数i が5のとき6行目でcontinue文が実行されています。処理自体は終了されて8行目は処理されません。しかしfor文から抜けるのではなく次の繰り返し処理に移るので4行目の処理に移ります。結果として8行目が処理されない「5」だけが表示されていません。


にほんブログ村 IT技術ブログ Webサイト構築へ
にほんブログ村
【WEBサイト構築・プログラムブログ】
ランキング参加中!よろしければ「クリック」お願いします。
にほんブログ村 IT技術ブログ プログラム・プログラマへ
にほんブログ村
2010 年 4 月 20 日 火曜日  【 カテゴリー: Javaの基本

コメントをどうぞ

※管理者による確認後に表示されます。表示までしばらくお待ちください。