2012年4月13日金曜日

Javaの制御構文 [繰り返し For While Do]



繰り返しとは、、


 繰り返しとは [ ある変数の値が 10になるまで ] とか、データベースから値をすべて取得するまでと言った条件が満たされるまで繰返して処理を行う事です。

 例えば数値を 1から 10まで表示させたいとします。もっとも単純な方法は 1から 10まで 10回表示させる命令を書く事ですが、これではあまりにも無駄が多すぎます。 10個程度ならまだましですが 100回や 1000回になってしまったら手におえません。 しかしこんな場合に繰り返し命令を使用するととても簡単な記述で済ませる事が可能になります。


繰り返し for ステートメント


 for文は回数指定で処理する場合に多く使用されます。
 Javaの繰り返し命令は次に説明する while文や do文もありますが、for文は最も柔軟といわれます。
for( initialization ; expr ; step ) {

    // 繰り返し行われる処理

}


どのようにPHPに戻って日付を取得しない
項目 動作
initialization 繰り返しが始まる前に一度だけ実行されます。ここで変数の初期化といった繰り返しを始める準備を行うのが一般的です。
expr 繰り返しを終了する条件です。ここに書いてある条件が満たされている間は繰り返し処理が行われることになり、ここに書いてある条件が満たされなくなった時点で繰り返し処理が終了します。
step 繰り返し処理が一回終了するごとにここの処理が実行されます。ここでは終了条件になるために変数をカウントしたりする処理を記述します。

 [ 1〜10まで繰り返し表示する ]

for(int i=1;i

    System.out.println( i ) ;

}

 この例ではカウンタに使用している変数 [ i ] の値を初期値 [ 1 ] に設定します。この初期化ブロックは、繰返しが開始される時に 1回だけ処理されます。

 終了条件は変数 [ i ] が [ 10 ] 以下となっています。 なのでこの forループは、変数 [ i ] が [ 10 ] 以下の間にこの処理ブロックを繰り返し実行します。

 カウンタとして使用されている 変数 [ i ] は増分値として [ i++ ] が指定されています。これは一回処理ブロックを通る度に [ i ] が [ +1 ] されるという意味です。もし 2ずつ増やしたい場合は、この部分を [ i+=2 ] とします。


Webページをスムーズに変更作り方

繰り返し while ステートメント


 whileは条件で指定されている式が 真の間 { } で囲まれた処理ブロックを繰り返し実行します。この時条件の判定は処理ブロックが実行される前に行われます。

 [ 表記法 ]

while ( expr ) {

    // 繰り返し行われる処理

}

項目 動作
expr 繰り返しを終了する条件です。真偽値のみ記述可能です。

 [ フローチャート ]

 [ 1〜100まで繰り返し表示する ]

int i = 0 ;

while(100 > i++){

    System.out.println( i );

}


繰り返し do ステートメント


 上までの繰り返しでは先ず 「 条件を調べる 」 → 「 処理を実行する 」 という手順になるので、条件によっては一度も処理が実行されないときもあります。「 どんな条件でも一度は処理を実行したい 」「 何回処理が行われるか分からない 」こんな場合に、条件を比較するタイミングを後に行う後判定の繰り返しを使用するときがあります。

 [ 表記法 ]

do {

    // 繰り返し行われる処理

} while ( expr );


model.mdfを変更する方法
項目 動作
expr 繰り返しを終了する条件です。真偽値のみ記述可能です。

 [ フローチャート ]

 [ 1〜100まで繰り返し表示する ]

int i = 1 ;

do {

    System.out.println( i );
    i++;

} while( i <= 100 );


break / continue を使った繰り返し制御


break


 多岐分岐命令 ( switch ) でも使用しましたが、break は繰り返しの途中でその繰り返しを強制的に抜ける命令です。switch命令の時も breakによってその処理ブロックを終了することによって以後の命令を実行しないように制御していましたが、繰り返しでも同様の事を行えます。

 [ サンプル ]

int i = 0;

while (true) {

    System.out.println(i);
    if ( i == 1 ) { break ; }
    i++;

}

 終了条件に真となる値を指定しているので、何もしなければこの繰り返しは永久ループなります。 しかし上記では i の値が 1 となった段階で breakによってこの while を抜ける事が出来ます。

continue



 残りのコードをスキップして判断文に制御を移します。 break 命令が残りのコードをスキップして、さらにループ自体も抜けるのに対して、continue 命令は残りの処理ブロックはスキップしますがループ自体は抜けず、条件によってはまた繰り返しの処理ブロックが実行されます。

 [ サンプル ]

for( int i=1; i

    if((i%2) == 0) continue;
    System.out.println( i ) ;

}

 上記では i を 2で割った余りが 0 であれば continueを実行します。 2で割った余りが 0 ということは偶数になりますので、偶数の際は以降のステートメントは実行せず、繰り返し条件の制御文に処理が移ります。


ネストする繰り返し


 繰り返し命令の {} で囲まれているところに繰り返し行われる処理を記述する。と説明してきましたが、これは処理ということなので繰り返しの中にさらに繰り返し処理を記述することも可能です。

 [ 三角を作成する ]

for(int i = 0; i

    for(int c = 0; c < i; c++){
        System.out.print("*");
    }

    System.out.print("¥n");
}

 [ 実行結果 ]

*
**
***
****
*****
******
*******
********
*********

 サンプルソースを見てみると一つ目の for文の中に入っている for文は一つ目の for文に比べて字下げされています。 これはインデントと呼びソースを見やすくするための書き方で、これなら for文の中にもうひとつ for文が記述されているというのが一目瞭然です。当然インデントしなくても処理自体は正常に動きますがソースの見易さとメンテナンスのし易さを考えて通常はこのような書き方をします。



These are our most popular posts:

「Do~Loop Until」「Do Until~Loop」「Do While~Loop」の使い分け

2009年1月26日 ... 「Do~Loop Until」「Do Until~Loop」「Do While~Loop」の使い分けVBAの構文、「 Do~Loop Until」「Do Until~Loop」「Do While~Loop」ですが、 どんなに説明を読ん でも、実際に書いてみても、違いがよく分か... read more

第11章:ループする(while) Java入門 (基礎文法編) Accel Works

Accel Works Developer Java入門 (基礎文法編) ... ループの方法は大きく分ける とwhileとforというものがあります。 ... int型の変数iを宣言して0を代入しますint i = 0; i が3より小さい間ループしますwhile(i 3){ System.out.println(i); iを+1します i++; } ... read more

独習JAVA

独習JAVA. Chapter 4. 4.1 ifステートメントのネスト. 4.2 forループのバリエーション. 4.3 whileループ. 4.4 doループ. 4.5 ループのネスト. 結城 隆. 4.1 ifステートメントの ネスト. if(count max) 外側のif. if(error)System.out.println("Error, try again."); ネスト ... read more

繰り返し処理 for文 do文 while文 JAVA入門

もし条件式がtrueであれば、ループ中の分を実行し、 条件式の判定が再度行われます。 条件式がtrueでアル限り、ループ中の分が実行され続けます。 条件がfalseになると、 whileループが終了します。 doループ文では、少なくとも一回は繰り返しが行われるの ... read more

Related Posts



0 コメント:

コメントを投稿