Java while文とdo…while文のサンプル

Javaのwhile文とdo...while文のサンプルです。条件で処理の繰り返しを制御します。

目次

while文 while文とは / while文のサンプル
  ループを抜ける(break) / 2重ループを抜ける(ラベル)
  ループの先頭に戻る(continue)
while文で配列を使用する
do...while文 do...while文とは / do...while文のサンプル
  ループを抜ける(break) / 2重ループを抜ける(ラベル)
  ループの先頭に戻る(continue)
無限ループの止め方(Eclipse使用時)

while文とは

while (条件式){
       処理
}
  • 条件式がtrueの間、処理を繰り返します。
  • 条件式がfalseの場合、処理を終了します。
  • 最初の判定がfalseの場合、処理は1回も実行されません。
  • 処理に条件式をfalseにするロジックがないと無限ループになるので注意が必要です。

 

while文のサンプル

public class Test1 {
	public static void main(String[] args) {
		int i = 0;

		while (i < 5) {
			System.out.println(i); // 0,1,2,3,4が出力される
			i++;
		}
	}
}

5行目は、値が5より小さい間、処理を繰り返します。
7行目は、条件式で使用する変数(i)の値を加算しています。

 

ループを抜ける(break)

	int i = 0;

	while (true) {
		if (i == 3) {
			break;
		}
		System.out.println(i); // 0,1,2が出力される
		i++;
	}

3行目は、条件式をtrueにしています。このままの場合は無限ループになります。
5行目のbreakでwhile文を抜けます。
breakがないと無限ループになるので注意が必要です。

 

2重ループを抜ける(ラベル)

	int i = 0;
	label1: while (true) {
		while (true) {
			if (i == 3) {
				break label1;
			}
			System.out.println(i); // 0,1,2が出力される
			i++;
		}
	}
	System.out.println("終了"); // 出力される

whileが2つある2重ループです。label1はラベルです。
5行目のbreakとラベルで外側のwhile文を抜けます。

 

ループの先頭に戻る(continue)

	int i = 0;

	while (i < 5) {
		if (i == 3) {
			i++;
			continue;
		}
		System.out.println(i); // 0,1,2,4が出力される
		i++;
	}

6行目のcontinueは、次は3行目を実行します。
このサンプルでは5行目の加算がないと無限ループになるので注意して下さい。

 

while文で配列を使用する

	String[] color = {"red","yellow","blue"};
	int i = 0;
	
	while ( i < color.length) {
		System.out.println(color[i]); // red,yellow,blueが出力される
		i++;
	}

1行目は、配列です。
4行目は、lengthで配列の要素数を取得しています。

 

do...while文とは

do {
       処理
} while (条件式);
  • 条件式がtrueの間、処理を繰り返します。
  • 条件式がfalseの場合、処理を終了します。
  • 必ず1回は処理が実行されます。
  • 処理に条件式をfalseにするロジックがないと無限ループになるので注意が必要です。

 

do...while文のサンプル

public class Test1 {
	public static void main(String[] args) {
		int i = 0;

		do {
			System.out.println(i); // 0,1,2,3,4が出力される
			i++;
		} while (i < 5);
	}
}

値が5より小さい間、処理を繰り返します。

 

ループを抜ける(break)

  int i = 0;

  do {
    if (i == 3) {
      break;
    }
    System.out.println(i); //0,1,2が出力される
    i++;
  } while (true);

5行目のbreakは、do...while文を抜けます。
9行目は、条件をtrueにしています。このサンプルでは5行目のbreakがないと無限ループになるので注意して下さい。

 

2重ループを抜ける(ラベル)

  int i = 0;
  dowhile1: do {
    do {
      if (i == 3) {
        break dowhile1;
      }
      System.out.println(i); // 0,1,2が出力される
      i++;
    } while (true);
  } while (true);
  System.out.println("End"); // 出力される

doが2つある2重ループです。dowhile1はラベルです。
5行目のbreakとラベルで外側のdo-while文を抜けます。

 

ループの先頭に戻る(continue)

  int i = 0;

  do {
    if (i == 3) {
      i++;
      continue;
    }
    System.out.println(i); //0,1,2,4が出力される
    i++;
  } while (i < 5);

6行目のcontinueは、次は3行目を実行します。
このサンプルでは5行目の加算がないと無限ループになるので注意して下さい。

 

無限ループの止め方(Eclipse使用時)

Eclipse使用時に無限ループになった時は、「コンソール」タブにある四角の赤いアイコンを押します。(Eclipse 4.8)

関連の記事

Java 拡張for文のサンプル(配列やコレクションを取得)
Java for文 処理を繰り返す(break/continue)

△上に戻る