プログラミング Java

【Java入門】繰り返し処理(while, for)

投稿日:

概要

繰り返し処理の制御構造について学んでいきましょう。

繰り返しには以下があります。

  • while(条件に一致する間だけ繰り返す)
  • do-while(一度必ず実行し、その後は条件に一致する間だけ繰り返す)
  • for(条件に一致する間だけ繰り返す[繰り返し回数を指定可能])

また、繰り返しの最中に、ある条件に達したらループ処理から抜けたかったり、特定の条件のみスキップしたいということがあります。
その場合は以下を使います。

  • break(ループ処理を終了する)
  • continue(次のループに進む)

 

基本構文

while

()内の条件がTrueである限り、処理を行います。
whileの処理が1行の場合、{}(中カッコ)は省略できます。
これはdo-while、forについても同じです。

do-while

必ず最初の1回は処理が行われます。
そのあとにwhileの条件判定が行われ、Trueである間は繰り返されます。

for

繰り返す回数を指定して処理を行う場合によく使います。

 

拡張for

配列やCollection型(Listなど)をループで取得して扱うことを簡単にするための仕組みです。
for(型 格納変数名 : 配列またはCollection)を基本構文としています。
配列が空の場合、ループ処理は行われません。

break

繰り返し処理を途中で終了させることができます。
以下の場合、5で終了します。

continue

処理を中断して、次のループに進みます。
以下の場合、偶数(割って0になる)はスキップしているので、奇数(英語でodd)のみが表示されます。

 

応用

多重ループ

繰り返し処理の中に繰り返し処理がある構造です。
以下の場合、iを1回繰り返す度に、jを9回実行しています。
 iの繰り返し処理1回目 -> jの繰り返し処理が9回
 iの繰り返し処理2回目 -> jの繰り返し処理が9回
 ・・・
結果的に、九九の結果が表示されます。

(コラム)
一覧の中に一覧があるような構造をもっている場合に使用することが多いです。
しかし、多重ループはコードが追いにくため、あまりお勧めしません。
将来的には、できるだけ多重ループにならないような設計ができることを目指しましょう。

無限ループ

終了条件が無い繰り返し処理です。
明示的に無限ループにする場合、whileの条件式を「true」にすることで可能です。
たまに、バグで無限ループに陥ってしまっていることもありますので、あまりに処理が重く終了しないということが起こったら、無限ループを疑ってみて下さい。

(コラム)
無限ループの使いどころは、何らかの条件になって終了させるまでずっと動かし続けるためのだと思います。
私自身は業務で無限ループ自体を実装する機会にまだお目にかかったことはないので、あまり使うことはないものだと思っています。

ラベル

ラベルはbreakやcontinueの制御を移す箇所を指定できる目印です。
以下は九九の途中で制御を移すようにしています。
・jが偶数のときは処理しない
・i * jが10になるときはiのループに戻る

(コラム)
実際には、繰り返し処理以外でも使用でき、returnやtry/throw(例外処理)にも指定できます。
しかし、コードが追いにくくなるため、多用することはお勧めできません。

もしJava Silverを受験するのであれば出題される可能性のある内容なので、理解しておくようにしましょう。

Java Silverを受験する場合は、黒本がおすすめです。
十分な練習問題と本番試験相当の総仕上げ問題が2回分あり、試験対策はこれだけで充分です。
 

まとめ

  • 繰り返し処理には、while / do-while / for文がある。
  • break, continueにより、繰り返し処理の途中でも終了したり、次のループを行わせることができる。
  • 繰り返し処理には、多重ループと無限ループという使い方もある。
  • ラベルは可読性が悪くなるので多用は避ける。

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-プログラミング, Java
-, , ,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

【Javaの始め方】環境構築から最初のコード作成まで

Javaを始めるにあたって必要な知識を必要最小限でお伝えします。 前提知識 Javaで開発するにはIDE(統合開発環境)が必要です。 そしてよく使われているIDEは以下の3つです。 名称無償/有償特徴 …

ITエージェントが保有している案件数を比較してみました

概要 ITエージェントが保有している案件はどのくらいあるのか? また、Java案件に参画するにはどのエージェント経由が有利か? というちょっとした興味を元に調べてみました。 調査実施日:2021年5月 …

使って便利だったNode.jsのnpmモジュール

Excel操作 xlsx Excelファイルからシート単位でデータを読み取り、JSON化することができるモジュール。 VBAでは処理が遅い場合の代替手段となるが、書式設定はできない。 JSONファイル …

no image

XSS対策の基本は入力値制限とサニタイジング(無害化)の2つ

XSS(クロスサイトスクリプティング)の基本的な対策は何をすればいいのかがぼんやりしている方向けの書いています。 対策方法はタイトルの通り、XSS(クロスサイトスクリプティング)対策の基本は入力値制限 …

Eclipseでタブを半角スペースに変換する便利プラグイン!

Eclipseでタブを半角スペースに変換する便利プラグインに、 AnyEdit Toolsというものがあります。 導入方法を以下に記載致しましたので参考にして下さい。   どういうものか? …

■運営者プロフィール
IT業界10年のエンジニア。
PHP -> VBA -> Javaと渡り歩いてきて、今はJavaをメインにフリーランスエンジニアとして活躍中!

[保有資格]
・Java SE 11 Gold

一度はエンジニアを辞めざるを得なかった私が再びエンジニアとして復活した数奇な物語

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。