順次構造のプログラム ステートメントは 1 回のみ実行できます。同じ操作を複数回実行したい場合は、ループ構造を使用する必要があります。
Java には 3 つの主要なループ構造があります。
while ループ
do…while ループ
for ループ
Java5 では、主に配列に対して拡張された for ループが導入されました。
while は最も基本的なループであり、その構造は次のとおりです。
while(ブール式) {
// ループ内容}
ブール式が true である限り、ループ本体は実行を続けます。
パブリック クラス テスト {
public static void main(String args[]) {
int x = 10;
while( x < 20 ) {
System.out.print("x の値 : " + x );
x++;
System.out.print("n");
}
}
}
上記の例のコンパイルと実行結果は次のとおりです。
xの値: 10
xの値: 11
xの値: 12
xの値: 13
xの値: 14
xの値: 15
xの値: 16
xの値: 17
xの値: 18
xの値: 19
while 文の場合、条件が満たされない場合はループに入ることができません。ただし、条件が満たされない場合でも、少なくとも 1 回は実行する必要がある場合があります。
do...while ループは while ループと似ていますが、do...while ループは少なくとも 1 回実行される点が異なります。
する {
//コードステートメント}while(ブール式);
注:ブール式はループ本体の後にあるため、ブール式が検出される前にステートメント ブロックが実行されます。 ブール式が true と評価される場合、ステートメント ブロックはブール式が false と評価されるまで実行されます。
パブリック クラス テスト {
public static void main(String args[]){
int x = 10;
する{
System.out.print("x の値 : " + x );
x++;
System.out.print("n");
}while( x < 20 ) } }
上記の例のコンパイルと実行結果は次のとおりです。
xの値: 10
xの値: 11
xの値: 12
xの値: 13
xの値: 14
xの値: 15
xの値: 16
xの値: 17
xの値: 18
xの値: 19
すべてのループ構造は while または do...while で表現できますが、Java には別のステートメントである for ループが用意されており、これにより一部のループ構造がより単純になります。
for ループが実行される回数は、実行前に決定されます。構文形式は次のとおりです。
for(初期化; ブール式; 更新) {
//コードステートメント}
for ループに関するいくつかの注意事項を次に示します。
最初に初期化ステップが実行されます。型は宣言できますが、1 つ以上のループ制御変数を初期化することも、空のステートメントにすることもできます。
次に、ブール式の値をテストします。 true の場合、ループ本体が実行されます。 false の場合、ループは終了し、ループ本体に続くステートメントの実行が開始されます。
ループを 1 回実行した後、ループ制御変数を更新します。
ブール式をもう一度確認してください。以上の処理をループで実行します。
パブリック クラス テスト {
public static void main(String args[]) {
for(int x = 10; x < 20; x = x+1) {
System.out.print("x の値 : " + x );
System.out.print("n");
}
}
}
上記の例のコンパイルと実行結果は次のとおりです。
xの値: 10
xの値: 11
xの値: 12
xの値: 13
xの値: 14
xの値: 15
xの値: 16
xの値: 17
xの値: 18
xの値: 19
Java5 では、主に配列向けに拡張された for ループが導入されました。
Java の拡張 for ループ構文形式は次のとおりです。
for (宣言文:式)
{
//コード文}
宣言ステートメント:新しいローカル変数を宣言します。変数の型は配列要素の型と一致する必要があります。その範囲はループ文ブロックに限定されており、その値はこの時点の配列要素の値と等しくなります。
式:式は、アクセスする配列の名前、または配列を返すメソッドの名前です。
パブリック クラス テスト {
public static void main(String args[]){
int [] 数値 = {10, 20, 30, 40, 50};
for(int x : 数値 ){
System.out.print(x);
System.out.print(",");
}
System.out.print("n");
文字列 [] names ={"ジェームズ"、"ラリー"、"トム"、"レイシー"};
for( 文字列名 : 名前 ) {
System.out.print( 名前 );
System.out.print(",");
}
}
}
上記の例のコンパイルと実行結果は次のとおりです。
10、20、30、40、50、
ジェームズ、ラリー、トム、レイシー、
Break は主にループ ステートメントまたは switch ステートメントでステートメント ブロック全体から飛び出すために使用されます。
Break は最も内側のループから飛び出し、ループの下のステートメントの実行を続けます。
Break の使用法は非常に簡単で、ループ構造内のステートメントです。
壊す;
パブリック クラス テスト {
public static void main(String args[]) {
int [] 数値 = {10, 20, 30, 40, 50};
for(int x : 数値) {
if( x == 30 ) {
壊す;
}
System.out.print(x);
System.out.print("n");
}
}
}
上記の例のコンパイルと実行結果は次のとおりです。
10
20
continue は、あらゆるループ制御構造に適用されます。この機能は、プログラムがループの次の反復にすぐにジャンプできるようにすることです。
for ループでは、 continue ステートメントにより、プログラムはすぐに update ステートメントにジャンプします。
while または do...while ループでは、プログラムはすぐにブール式の判定文にジャンプします。
continue はループ本体内の単純なステートメントです。
続く;
パブリック クラス テスト {
public static void main(String args[]) {
int [] 数値 = {10, 20, 30, 40, 50};
for(int x : 数値) {
if( x == 30 ) {
続く;
}
System.out.print(x);
System.out.print("n");
}
}
}
上記の例のコンパイルと実行結果は次のとおりです。
10
20
40
50