| while文(わいるぶん) |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
while文
条件を満たしている間、実行を繰り返し続ける制御文。
つまり、条件式がtrueの間は無限にループし続ける。
逆に止めたければ、条件式をfalseにしてやればいい。
実行回数が決まってないのがfor文との大きな違い。
日本語にすると「~の間」の意味。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
 |
|
|
while文で使う命令
|
while |
実行する条件を指定する |
|
break |
処理を打ち切る |
|
continue |
命令以降の処理をキャンセルして
ループを続行する |
|
|
|
|
do-while |
実行する条件を指定する
ブロックが最低1回は実行される |
必要に応じて組み合わせて使う |
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
while文は、while単独でも使えるが
実際には、break、continueの、
2つの命令文を組み合わせて使うことが多い。
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
条件式がfalseでも1回は必ずブロックを実行する
do-while
という書き方もある。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
while文の流れや決まりは、
条件式の部分以外はほとんどfor文と同じ。
違う部分を確認するようにして下さい。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
whileはwhile文必須の命令。
ここにループし続けるための
条件式と実行する処理を書く。
whileは日本語の「~の間」の意味。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
while文の書き方
whileに続けて()括弧、{}括弧を書く。
「( )」に条件式を書く。
「{ }」のブロックの中にtrueの時に実行する処理を書く。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
while文の条件式の書き方はif文と同じ。
いろいろ比較もできるし、boolean型の変数や
論理演算子とかも使える。
条件式は、for文より自由に書ける。
だが、カウンターみたいに自動なのは無い。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
ループをフラグで管理するやり方
この例の方法だと、条件式に使うのはフラグのみ。
今までのようにに、条件式に「以上なら」とか記入しない。
注意点
breakと違って即座にループが終了しない。
フラグを立てた後も、ブロックの終わりまで処理は実行される。
フラグを立てただけじゃ終わらないため、戻ってからまた判定してそれで終わる。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
変数をブロックの中で宣言するとループ毎に初期化される。
これだと加算できない。してもループ毎0になる。
値を保持しつづける変数はブロックより上で宣言すること。
これはどの制御文でも同じ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
| |
|
|
| |
 |
|
 |
|
|
|
while文の例(KotoTest11のKNMain.java)24行目~ |
| |
| ・・・ |
|
|
|
|
024 |
|
//*****
変数 ***** |
|
| 025 |
|
boolean
loopFlg = true;//ループ継続フラグ |
|
| 026 |
|
int yuushaLifePoint = 0;//勇者生命力 |
|
| 027 |
|
|
|
| 028 |
|
//***** 処理 ***** |
|
| 029 |
|
|
|
| 030 |
|
while(loopFlg ==
true){ |
|
| 031 |
|
//回復処理 |
|
| 032 |
|
yuushaLifePoint = yuushaLifePoint +
KAIFUKU_POINT; |
|
| ・・・ |
|
|
|
|
変数 yuushaLifePoint
はwhile文のブロックの外で宣言しているので、
ループしても変数は初期化されない。
ループを通して継続使用する変数はブロック外で宣言する必要がある。 |
|
|
|
 |
|
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
whileには
do-whileという書き方もある。
この書き方だと、
まずdoブロックを1回実行してから判定ループに入る。
つまり、条件式がfalseでも1回は必ずブロックを実行する。
doは日本語で「~する」って意味。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
do-while文の書き方
doに続けて{}括弧でブロックを書く。
その後につなげてwhileと()括弧を書く。
「( )」に条件式を書く。
「{ }」のブロックの中に、trueの時に実行する処理を書く。
一番最後に「;」(セミコロン)が必要。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
do-whileは、
最低1回は実行させたい処理がある場合に使える。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
まずは基本として
この2つの書き方を覚えること。
それでほとんどの処理に対応できる。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
| |
 |
|
 |
|
|
|
while文の基本的な2つの書き方 |
| |
| 1、条件式にフラグを使う |
| 2、条件式に直接trueを書く |
|
| |
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
|
|
while文のまとめ(処理) |
|
|
|
while文の処理の内容 |
|
条件式がtrueの間処理を繰り返す制御文(反復) |
|
break文を使う事でループを打ち切ることができる |
|
continue文を使う事で中断して特定ループをスキップできる |
|
実行回数が不明な処理に対応できる。 |
|
| |
|
|
 |
|
 |
|
|
|
 |
|
 |
|
|
|
while文のまとめ(命令) |
|
|
| while |
|
「~の間」処理を実行する命令 |
|
ループする条件を条件式で決める |
|
ループの継続を判定する |
|
while文必須の命令 |
|
| break |
|
ループを「打ち切る」命令 |
|
whileブロックの中に書く |
|
自分のいるwhileブロックのループを終了する |
|
| continue |
|
ループをその場で中断して「続ける」命令 |
|
whileブロックの中に書く |
|
自分のいるwhileブロックのループを中断して戻る |
|
|
|
| do-while |
|
処理を実行してからループを開始する命令 |
|
ループの最後にループの継続を判定する |
|
最低1回は処理が実行される |
|
doブロックに実行する処理を書く |
|
|
| |
|
|
 |
|
 |
|
|