通常のfor文の構文、拡張for文、break文、continue文など。Javaの拡張for文までマスターできるを目標に、Javaのfor文についてまとめています。
for文を使ったループ処理は、ほかのループ構文よりも洗練された構文で機能が充実しています。
ここでは、for文とはからJavaのfor文について見ていき、拡張for文まで使えるようにしていきます。 break文やcontinue文などループ処理中の制御についても見ていきます。
for文とは、プログラムで繰り返し処理を記述するコードの1つです。
Javaのfor文の構文は次の通りです。
for (<カウンタの初期化式>;<繰り返すかどうかの条件><カウンタなど変化のための式>) 処理1; : }
繰り返す回数をカウントするための変数の初期化を行います。 「int i = 0」のように変数は宣言して初期化することもできます。 初期化は、ループが始まる1回だけ行われます。
trueかfalseのいずれかを返す条件です。 forブロックは、この条件がfalseになるまで繰り返しを実行します。
forブロック内の処理が実行されるたびに(実行直後に)式が実行されます。 通常は、ループカウンタの値を変化させる式を書きます。
実際にプログラムを作成してみるとわかりやすいですが、先に拡張for文の説明を行います。
後でたくさんのサンプルを見て行きながら、 拡張for文を使った方がいい場合と通常のfor文を使った方がいい場合を説明していきます。 break文やcontinue文もその流れで説明していきます。
通常のfor文の場合、ループカウンタを記述しますが、 単純に配列などの値を先頭から順番に取りだしたりする場合、 拡張for文を使った方が簡単に記述できます。
拡張for文は次のように書きます。
for(<変数> : <コレクション>){ 要素の数だけ、このブロック内の文が実行される。 }
ループカウンタの値を特にforブロック内で使用しない場合は 拡張for文を使った方がシンプルになります。
逆にループカウンタの値をループ終了後の後の処理でも使いたい場合など ループカウンタをブロック内で使用する場合は通常のfor文を使う必要があります。
以下では、上述の説明では、初めての方の場合、for文?拡張for文?という感じになると思います。 ですので上述の説明の内容を繰り返し、サンプルプログラムを見ながら説明していきます。
int型の配列の中身を先頭から順に標準出力するコードを作成します。
for文のi++の++は、インクリメントといわれるもので、i = i + 1と同じようにiの値を1プラスするという演算を行います。 このサンプルコードでは、ループカウンタが1回のループで1増えるのを利用して、 配列の先頭から順に要素の値を標準出力しています。
public class Sample { public static void main(String[] args){ int[] myArray = new int[3]; myArray[0] = 10; myArray[1] = 20; myArray[2] = 30; for (int i = 0; i < myArray.length; i++) { System.out.println(myArray[i]); } } }
javac Sample.java
java Sample 10 20 30
ノーマルなfor文の例の場合、配列の要素を先頭から1つ1つ走査していく定例的な処理ですが、 わざわざ初期化とか条件とか記述する必要がありました。
拡張for文を使うとそのような1つ1つインクリメントしていくような定例的な処理を自動化してくれます。 以下では、拡張for文の使用例を記述したサンプルプログラムを示しています。
for文の中にint n : myArrayと記述するだけで、先頭の要素から1回ループが回る度に次の要素の値を左側の変数nに値を設定してくれます。
public class Sample { public static void main(String[] args){ int[] myArray = new int[3]; myArray[0] = 10; myArray[1] = 20; myArray[2] = 30; for (int n : myArray) { System.out.println(n); } } }
javac Sample.java
java Sample 10 20 30
拡張for文は便利ですが、for文のブロック内でカウンタの値を使用して判定したり、 値を保持したい場合に不向きです。無理やり使用する場合は、わざわざカウンタを追加しないといけなくなります。
そのような場合は、通常のfor文を使用します。
以下では、break文というループを途中で終わらせる文をつかって、カウンタの値を保存して途中で判定してループを終了する例を見ていきます。
配列の要素の値が20の要素番号を保存して、後で要素番号を標準出力する例を見ていきます。
public class Sample { public static void main(String[] args){ int[] myArray = new int[3]; myArray[0] = 10; myArray[1] = 20; myArray[2] = 30; int index = 0; for (int i = 0; i < myArray.length; i++) { if (myArray[i] == 20) { index = i; break; } } System.out.println(index); } }
javac Sample.java
java Sample 1
continue文という構文を使用するとループの処理をスキップすることができます。
以下では、continue文を使用して、配列の要素の値が1の場合、標準出力しないようにする例を見ていきます。
public class Sample { public static void main(String[] args){ int[] myArray = new int[3]; myArray[0] = 10; myArray[1] = 20; myArray[2] = 30; int index = 0; for (int i = 0; i < myArray.length; i++) { if (i == 1) { continue; } System.out.println(myArray[i]); } } }
javac Sample.java
java Sample 10 30
繰り返し処理を行う構文の1つにfor文があります。 そして、Javaの場合、定例的な配列の要素を1つ1つ先頭から取り出すような処理を自動化した拡張for文が使えます。
また、for文のブロック内の処理では、途中でループを終了するbreak文、途中の処理をスキップするcontinue文が利用できます。
Javaとは?から言語の枠を超えるところまで、Java言語についてまとめています。
スポンサーリンク
サイト内のページ
言語
C・C++
/HTML
/Java
/JavaScript
/PHP
/シェルスクリプト
開発環境
Ant
/Burp
/Eclipse
/Fiddler
/gcc
/gdb
/Git
/g++
/JDK
/JMeter
/JUnit
/Teraterm
/ZAP
技術・仕様
Ajax
/CORBA
/Jakarta EE(旧称J2EE、Java EE)
/JNI
ライブラリ/Framework/CMS
bootstrap
/jQuery
/FuelPHP
/Lucene
/MyBatis
/Seasar2
/Spring
/Struts
/WordPress
Web API
Google Maps
ITインフラOSとミドルウェア
Linux
/Windows
/シェル
ActiveMQ
/Tomcat
/MariaDB
/MySQL
/Nagios
/Redis
/Solr
ITインフラセキュリティ
公開サーバーのセキュリティ
SI
ホームページの作り方
スポンサーリンク
関連サイト内検索ツール
zealseedsおよび関連サイト内のページが検索できます。
IPアドレス確認ツール
あなたのグローバルIPアドレスは以下です。
18.223.209.129
HTMLの表示色確認ツール
パスワード生成ツール
文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。
ここに生成されます。
スポンサーリンク
Copyright (C) 2007-2024 zealseeds. All Rights Reserved. Loarding…