シーケンス構造のプログラムステートメントは1回だけ実行できます。 同じ操作を複数回実行したい場合、ループ構造を使用する必要があります。
Javaには3つの主要なループ構造があります。
- whileループ
- do… whileループ
- forループ
Java5では主に配列に使用される拡張forループが導入されました。
目次
whileループ
whileは最も基本的なループですが、その構造は次のとおりです。
while(ブール式 ) {
//ループコンテンツ
}
ブール式がtrueである限り、ループは実行を継続します。
実例
Test.java ファイルコード:
public class Test {
public static void main(String args[]) {
int x = 10;
while( x < 20 ) {
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}
}
}
上記の実例をコンパイルして実行した結果は次のとおりです。
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
do … while ループ
whileステートメントの場合、条件が満たされない場合、ループが実行できません。ただし、条件が満たされていなくても、少なくとも1回は実行する必要がある場合があります。
do … whileループはwhileループに似ていますが、do … whileループが少なくとも1回実行される点が異なります。
do {
//コードステートメント
}while(ブール式);
ヒント:ブール式はループ本体の後にあるため、ブール式が検出される前にステートメントブロックが実行されています。ブール式の値がtrueの場合、ブール式の値がfalseになるまでステートメントブロックが実行されます。
実例
Test.java ファイルコード:
public class Test {
public static void main(String args[]){
int x = 10;
do{
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}while( x < 20 );
}
}
上記の実例をコンパイルして実行した結果は次のとおりです。
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
forループ
すべてのループ構造はwhileまたはdo … whileで表すことができますが、Javaは別のステートメントforループを提供します。これより、一部のループ構造が簡単になります。
forループが実行される回数は、実行される前に決定されます。構文形式は次のとおりです。
for(初期化; ブール式; 更新) {
//コードステートメント
}
forループについては説明したいのは次の通りです。
- まず初期化を実行します。1つの型を宣言できますが、1つ以上のループ制御変数を初期化することも、空のステートメントにすることもできます。
- 次に、ブール式の値を確認します。trueの場合、ループ本体が実行されます。falseの場合、ループは終了し、ループ本体の後ろにある残ったステートメントを実行します。
- ループを1回に実行した後、ループ制御変数を更新します。
- ブール式を再確認します。 上記のプログラムをループします。
実例
Test.java ファイルコード:
public class Test {
public static void main(String args[]) {
for(int x = 10; x < 20; x = x+1) {
System.out.print("value of x : " + x );
System.out.print("\n");
}
}
}
上記の実例をコンパイルして実行した結果は次のとおりです。
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
Java 強化されたforループ
Java5では、主に配列に使用される強化されたforループが導入されました。
Java 強化されたforループの構文は次の通りです。
for(宣言ステートメント : 式)
{
//コードステートメント
}
宣言ステートメント:新しいローカル変数を宣言します。変数の型は配列要素の型と一致する必要があります。そのスコープはループステートメントブロックに制限されており、その値はこの時点での配列要素の値と同じです。
式:式は、アクセスする配列の名前、または配列を返すメソッドです。
実例
Test.java ファイルコード:
public class Test {
public static void main(String args[]){
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ){
System.out.print( x );
System.out.print(",");
}
System.out.print("\n");
String [] names ={"James", "Larry", "Tom", "Lacy"};
for( String name : names ) {
System.out.print( name );
System.out.print(",");
}
}
}
上記の実例をコンパイルして実行した結果は次のとおりです。
10,20,30,40,50,
James,Larry,Tom,Lacy,
breakキーワード
Breakは、主にループステートメントまたはswitchステートメントで使用され、ステートメントブロック全体からジャンプします。
breakは最内層のループからジャンプして、ループの下のステートメントを実行し続けます。
構文
breakの使い方は非常に簡単で、ただループ構造のステートメントです。
break;
実例
Test.java ファイルコード:
public class Test {
public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ) {
// xが30に等しい場合、ループからジャンプします
if( x == 30 ) {
break;
}
System.out.print( x );
System.out.print("\n");
}
}
}
上記の実例をコンパイルして実行した結果は次のとおりです。
10
20
continueキーワード
continueは、すべてのループ制御構造に適用されます。 この機能はすぐに、プログラムをループの次の反復にジャンプさせることです。
forループでは、continueステートメントにより、プログラムはすぐにupdateステートメントにジャンプします。
whileまたはdo … whileループでは、プログラムはすぐにブール式の判定ステートメントにジャンプします。
構文
continueは、ループ本体の簡単なステートメントです。
continue;
実例
Test.java ファイルコード:
public class Test {
public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ) {
if( x == 30 ) {
continue;
}
System.out.print( x );
System.out.print("\n");
}
}
}
上記の実例をコンパイルして実行した結果は次のとおりです。
10
20
40
50
コメントを残す