continue文

広告

continue文はbreak文と同じくfor文、while文、do..while文のブロック内で使用され、continue文が実行されると実行された位置からブロックの最後まで残りの処理をスキップします。continue文の書式は次のようになっています。

continue;

スキップという意味が分かりにくいかもしれませんが、次の例を見て下さい。

for (int i = 0; i < 10; i++){
  if (i == 3){
    continue;
  }

  System.out.println(i);
}

上記では変数「i」の値が3の時にcontinue文が実行されます。continue文が実行されるとブロック内でそれ以降に記述された処理を全て行わずに次の繰り返しの条件判断に進みます。つまり上記の場合は変数「i」の値が3の時だけ「System.out.println(i);」が実行されません。

なおfor文の場合は変化式が別途用意されているので気にしなくても大丈夫ですが、while文などでは条件式の値を変化させる処理も含めてスキップさせてしまわないように気をつけて下さい。

例えば次のように記述してしまうと変数「i」が3になると変数「i」の値を変化させる処理もスキップしてしまうため、次の繰り返し処理になっても変数「i」の値が変化せずに無限ループとなってしまいます。

int i = 0;

while(i < 10){
  if (i == 3){
    continue;
  }

  i++;
  System.out.println(i);
}

なおbreak文と同じく繰り返し処理が多重になっている場合には、continue文を含む一番内側の繰り返し処理をスキップして次の繰り返しへ移ります。任意の繰り返し処理をスキップさせるには次のページで解説するラベル付きcontinueを使って下さい。

サンプル

では簡単な例で試しておきます。

JSample4_1.java

class JSample4_1{
  public static void main(String args[]){

    for (int i = 1; i < 10; i++){
      if (i % 2 == 0){
        continue;
      }

      System.out.println("i = " + i);
    }
  }
}

コンパイル後に実行すると次のように表示されます。

p4-1

今回は値が偶数の場合だけそれ以降の処理をスキップしています。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)