continue文

continue文は現在行われているループ処理の中において、後続の処理を飛ばし
条件式に戻りループを続けます。

記述の仕方は、後続の処理を飛ばしたいところにcontinue;と記述するだけです。
while文やdo while文 for文に関してはループ内のブロック内にcontinue;と記述すると、
そのループの条件式に制御が移ります。

では、サンプルプログラムを見ていきます。

サンプルプログラム(Sample36.java)

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

System.out.println("2の倍数の時は制御が条件式に移ります");

 int i = 0;

while(i < 10){

 i++;
   
  if((i % 2) ==0){
    continue;
}
 
 System.out.println("iの値は" + i);
     }
  }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行してみます。

実行結果はこのようになります。
i % 2 は 算術演算子の  剰余算 でしたね! つまりif文は i % 2 == 0で
もし、 i % 2 が 0 の場合はcontinue しなさいの意味になります 。
つまり2で割り切れるときは制御を条件式に戻しなさいということです。
下の表を見てください

i の値
if文の評価
処理内容
出力結果
i = 1
if(1 % 2) == 0(false)
i の値は1
i = 2
if(2 % 2) == 0(true)
continueで次の制御に移る
ここの処理はされない
i = 3
if(3 % 2) == 0(false)
i の値は3
i = 4
if(4 % 2) == 0(true)
continueで次の制御に移る
ここの処理はされない
i = 5
if(5 % 2) == 0(false)
i の値は5
i = 6
if(6 % 2) == 0(true)
continueで次の制御に移る
ここの処理はされない
i = 7
if(7 % 2) == 0(false)
i の値は7
i = 8
if(8 % 2) == 0(true)
continueで次の制御に移る
ここの処理はされない
i = 9
if(9 % 2) == 0(false)
i の値は9
i = 10
i は10により終了

つまり if文がtrueの時はcontinue;によりその後続の処理は行われません。
したがってiの値は出力されません。
では、今度はfor文でのcontinue;の制御の仕方を見ていきましょう。
基本的な考え方はwhile文と同じです。

サンプルプログラム(Sample36_1.java)

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

System.out.println("2の倍数のときは制御が条件式に移ります");

for(int i = 0; i < 10; i++){ if((i % 2) == 0){ continue; } System.out.println("i の値は" + i);
} } }
プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行してみます。

ただ、Sample36.javaをfor文に書き換えただけなので出力結果は同じになります。

ページのトップへ戻る