Java SE Silver合格に向けて ~ループ構造の使用~ | システムエンジニアライフ

Java SE Silver合格に向けて ~ループ構造の使用~

ヘッダー広告
スポンサードリンク

私は先日Java SE Silverを合格しました。

私がJava SE Silverを受験した理由は、職場ではWebアプリケーションの開発をしているのですが、その中で使用しているJavaを体系的に理解し、仕事で役立てようと考えて勉強・受験しました。
当記事は、Java SE Silverの合格を目指す方々の力に少しでもなればと思い書いています。

是非参考にしてください。

今回はJava SE Silverの試験範囲の一つである『ループ構造の試用』についてまとめています。

過去の連載記事はこちらをご覧ください。

ループ構造の使用


繰り返し構文

Javaで繰り返し処理を行うには、以下のような構文を使用します。
  • while文
  • do~while文
  • for文

どれを使うのかは好みであったり、使用するロジックによっても異なります。
しかし、実際に多く使われているのは、for分が多いかと思います。

また、while文とfor文が色々なところで混在して使われていると、ソースコードの可読性が下がってしまうため、どちらかに統一した方がいいでしょう。
コーディング規約等で、どちらかしか使わないような仕組み作りをしている職場も多くあります。

while文

まずwhileを使用したループ処理になります。

while (条件式) {
 処理内容
}

条件式には、ループの終了条件を記載します。
処理内容は繰り返し実行する処理内容を記載します。

処理のサンプルになります。

public class Loop {

	public static void main(String[] args){
		
		  int i = 0;
		  while (i < 10) {
			  System.out.println("現在の i の値は『" + i + "』です");
			  i++;
		  }
		
	}
}

実行結果

現在の i の値は『0』です
現在の i の値は『1』です
現在の i の値は『2』です
現在の i の値は『3』です
現在の i の値は『4』です
現在の i の値は『5』です
現在の i の値は『6』です
現在の i の値は『7』です
現在の i の値は『8』です
現在の i の値は『9』です

これがwhile文になります。

do-while文

次はdo-whileを使用したループ処理になります。

do {
 処理内容
} while (条件式);

条件式には、ループの終了条件を記載します。
処理内容は繰り返し実行する処理内容を記載します。

whileとの違いは、終了判定の条件式を後ろに持っていくことです。
後ろに持っていくことで、必ず一回はループ内の処理を実行することが出来ます。

処理のサンプルになります。

public class Loop {

	public static void main(String[] args){

		int i = 0;
		do {

			System.out.println("現在の i の値は『" + i + "』です");
			i++;

		} while (i < 10);

	}
}

実行結果

現在の i の値は『0』です
現在の i の値は『1』です
現在の i の値は『2』です
現在の i の値は『3』です
現在の i の値は『4』です
現在の i の値は『5』です
現在の i の値は『6』です
現在の i の値は『7』です
現在の i の値は『8』です
現在の i の値は『9』です

こちらがdo-while文になります。

for文

そしてfor文を使用したループ処理になります。

for (初期化;条件式;更新処理) {
 処理内容
}

初期化には、ループで使用する変数を宣言します。
条件式には、ループの終了条件を記載します。
更新処理には、ループで使用する変数を更新します。
処理内容は繰り返し実行する処理内容を記載します。

for文は、一行に初期化・条件式・更新処理を記載するため、冗長ではなくなる。可読性が高いと個人的には思っています。
多くの開発現場ではfor文が一番使われているのではないかと思います。

処理のサンプルになります。

public class Loop {

	public static void main(String[] args){

		for (int i =0;i < 10;i++) {

			System.out.println("現在の i の値は『" + i + "』です");

		}

	}
}

実行結果

現在の i の値は『0』です
現在の i の値は『1』です
現在の i の値は『2』です
現在の i の値は『3』です
現在の i の値は『4』です
現在の i の値は『5』です
現在の i の値は『6』です
現在の i の値は『7』です
現在の i の値は『8』です
現在の i の値は『9』です

こちらがfor文になります。

以上のように3種類のループ処理があり、それぞれ記述は異なりますが、同じ値を返すことが可能となります。
個人の好みによって使いわけていただければと思います。

ループ処理その他

拡張for文

先ほどfor文をご紹介しましたが、拡張for文という記述方法もあります。
拡張forでは、配列を取得して一つずつ変数に代入し処理をしていくということが可能です。

for (変数宣言 : 配列変数) {
 処理内容
}

処理のサンプルになります。

public class Loop {

	public static void main(String[] args){

		int[] i = {0,1,2,3,4,5,6,7,8,9};

		for (int num : i) {

			System.out.println("現在の i の値は『" + num + "』です");

		}

	}
}

実行結果

現在の i の値は『0』です
現在の i の値は『1』です
現在の i の値は『2』です
現在の i の値は『3』です
現在の i の値は『4』です
現在の i の値は『5』です
現在の i の値は『6』です
現在の i の値は『7』です
現在の i の値は『8』です
現在の i の値は『9』です

こちらが拡張for文になります。

breakとcontinue

最後にループ内にて使用することが出来る『break』と『continue』というものを紹介します。

こちらはサンプルを見てもらった方が理解できると思うので早速コードを紹介します。

public class Loop {

	public static void main(String[] args){

		//break
		for (int i =0;i < 10;i++) {

			if (i == 5) {
				break;
			}
			System.out.println("break:現在の i の値は『" + i + "』です");

		}

		//continue
		for (int i =0;i < 10;i++) {

			if (i % 2 == 0) {
				continue;
			}
			System.out.println("continue:現在の i の値は『" + i + "』です");

		}

	}
}

実行結果

break:現在の i の値は『0』です
break:現在の i の値は『1』です
break:現在の i の値は『2』です
break:現在の i の値は『3』です
break:現在の i の値は『4』です
continue:現在の i の値は『1』です
continue:現在の i の値は『3』です
continue:現在の i の値は『5』です
continue:現在の i の値は『7』です
continue:現在の i の値は『9』です

このようにbreakは、直前のループ処理を抜けるということが出来ます。
continueは、ループ内の後続処理を中断し、次のループ処理に移るということが出来ます。

これらは、うまく使えばかなり便利なコードとなりますが、反面スパゲッティコードとなる危険性もありますので、よく注意して使ってください。

ちなみにbreakやcontinueは以下のような使い方もできますが、よりスパゲッティコードとなりやすいため、あまりお勧めはしません。

public class Loop {

	public static void main(String[] args){

		a:for (int i =0;i < 5;i++) {
			b:for (int j = 0;j < 5;j++) {
				if (i % 2 == 0) {
					continue a;
				}
				if (i == 4) {
					break b;
				}
				System.out.println("現在の i の値は『" + i + "』 j の値は『" + j + "』です");
			}
		}

	}
}

実行結果

現在の i の値は『1』 j の値は『0』です
現在の i の値は『1』 j の値は『1』です
現在の i の値は『1』 j の値は『2』です
現在の i の値は『1』 j の値は『3』です
現在の i の値は『1』 j の値は『4』です
現在の i の値は『3』 j の値は『0』です
現在の i の値は『3』 j の値は『1』です
現在の i の値は『3』 j の値は『2』です
現在の i の値は『3』 j の値は『3』です
現在の i の値は『3』 j の値は『4』です

以上が今回のループ構造の使用になります。

SEは常に勉強する必要がありますので、是非これを機会に受験して能力を一緒に高めましょう!

Java SE Silver合格に向けたおススメ書籍

フッター広告

スポンサードリンク



シェアする

  • このエントリーをはてなブックマークに追加

フォローする