while文(わいるぶん) |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
while文は、条件を満たしている間
実行を繰り返し続ける制御文だ。
つまり、条件式がtrueの間は
無限にループし続ける。
逆に止めたければ
条件式をfalseにしてやればいい。
日本語にすると「~の間」の意味だよ。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
実行回数が
決まってないのが、
for文と違うんだね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
 |
|
while文で使う命令
while |
実行する条件を指定する |
break |
処理を打ち切る |
continue |
命令以降の処理をキャンセルして
ループを続行する |
|
|
do-while |
実行する条件を指定する
ブロックが最低1回は実行される |
必要に応じて組み合わせて使う |
|
|
 |
|
 |
|
|
もちろん
if文とかも
合わせて
使えるよ。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
while文は、
while単独でも使えるけど
実際には、break、continueの、
2つの命令文を組み合わせて
使うことが多い。
breakもcontinueも、もう使ったよな。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
breakもcontinueも
使えるんだ。
for文もどっちもループ
するから似てるんだね。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
これで
途中で打ち切ったり
中断してスキップしたり
するんだね。 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
それから、
条件式がfalseでも
1回は必ずブロックを
実行する
do-while
という書き方もある。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
 |
今まで
無かったね。 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
while文の流れや決まりは、
条件式の部分以外は
ほとんどfor文と同じだよ。
違う部分を確認するように
してくれ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
同じ
反復型だから
似てるの。 |
 |
|
 |
そうなんだ。 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
じゃあ、まずwhileを見ていこう。
whileは
while文必須の命令だ。
ここにループし続けるための
条件式と実行する処理を書く
んだよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
whileは
日本語の
「~の間」の
意味ね。 |
 |
|
 |
条件式
書く場所が
ないとね。 |
|
|
|
|
ブロック内も
何書いても
いいよ。 |
|
|
 |
決まりっと。 |
|
|
|
|
 |
|
|
|
|
 |
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
while文の書き方は
whileに続けて()括弧、{}括弧
を書く。
「( )」に条件式を書いて
「{ }」のブロックの中に、
trueの時に実行する処理を
書くんだ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
今回は
boolean型の変数で
ループフラグ調に
してみますた。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
while文の条件式の
書き方はif文と同じだ。
いろいろ比較もできるし、
boolean型の変数や
論理演算子とかも使える。
ここがfor文と違うな。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
フラグに
したんだ。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
条件式は、for文より自由に
書けるんだね。
でも、カウンターみたいに
自動なのは無いんだ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
条件式が
trueなら
ずっと
ぐるぐる
回るんだね。 |
|
|
|
|
|
|
|
 |
|
|
|
|
 |
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
処理の流れも、
for文と同じみたい。
あっ、
カウントアップが無いか。
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
まあ、
大体分かる
だろ。 |
|
|
 |
はいっ。
大丈夫です。 |
|
|
|
|
 |
|
|
|
|
 |
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
変数の有効範囲はこんな感じ。
ブロック内で宣言された変数は
その中でだけ有効だよ。
毎回初期化されるのも同じ。
ループ中、初期化されたくない
変数は、ブロック外のwhileより
上に書こう。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
breakやcontineを
一緒に使った場合は
こんな流れ。
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
for文と
同じなんだね。
後でfor文
見直しとこっと。
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
うーん、
そう言われても
同じようなもんだしー。 |
 |
|
 |
なんでも
同じ過ぎない? |
|
|
|
|
|
|
|
うーむ
うーむ |

|
|
 |
なぽちゃん、
ごめん。
ごめんなさーい!
悩まないでー。。。 |
|
|