第11回 while文による繰り返し

ファーストイヤー・セミナーⅡ
第11回 while文による繰り返し
while文



while文はfor文などと同様に、特定の処理を繰り返した
いときに使用する
ただしfor文と違って、書式の中に「初期化」「再設定」部
分がないことに注意
条件判定(処理を繰り返すかどうかの判断)は繰り返し
処理の前に行われる
while文の書式
while文の処理の流れ

while文の流れは以下のようになる
while文による繰り返し(1)

while文を用いて、1~10の整数を順に表示するプログ
ラム
xの値の初期化
x<=10のあいだ繰り返し
xの再設定
練習

while文を用いて、10~1の整数を順に表示するプログ
ラムを作成してください(カウントダウン)
xを10に初期化
x>=1のあいだ繰り返し
xの再設定
(ディクリメント)
インクリメント演算子・ディクリメント演算子




条件設定、再設定の部分などで使用される演算子
インクリメント演算子・ディクリメント演算子には前置型と後
置型がある
後置型
a++
b-前置型
++a
--b
←処理の後にaを1増やす
←処理の後にbを1減らす
←処理の前にaを1増やす
←処理の前にbを1減らす
インクリメント、ディクリメント演算子の利用


インクリメント、ディクリメント演算子を利用することで記述を単
純化できる
「いつ」加算、減算がおこなわれているかをちゃんと考えて判
定条件、初期値を設定すること
条件判定部分に利用
本文内で利用
練習


以下の2つのプログラムを作成し、結果がどう異なるか確認し
てください
右側のプログラムの結果を左と同じにするにはどうすればよ
いか考えてください
練習のプログラム例



以下のような書き換えの方法があります
左:初期値を11とし、条件判定を x-- > 1 とする
右:初期値を11とし、条件判定を --x >= 1 とする
無限ループ



while文で再設定を忘れたり、意図的に再設定をしなかった場
合には「常に処理を繰り返す」無限ループになることがある
意図的に無限ループにしたい場合には条件判定式のところに
「1」を入れておくと良い
無限ループからの脱出には「break文」などが使える
rand() 関数を使用する
ために必要
この部分を削除すると
無限ループになる
while文のネスト


for文やif文と同じように、while文もネスト(入れ子)して使用す
ることができる
例:四角形を描くプログラム
for文と違って初期化の部分がない
ため、ループに使用する変数の
初期化をおこなう部分に注意!
do while 文


while文と異なり、「文を実行した後に」条件判定をおこなう書式
そのため最低1回は文が必ず実行される
do while 文(2)

0~100までの偶数を表示するプログラム
x=0 から開始して x を表示し
x を 2 ずつ増やして100以下
なら繰り返し
繰り返し部分
x<=100ならもう一度実行
第11回のレポート


以下のプログラムを作成し、どちらか1つを教員までメー
ルで提出してください
宛先:
(1)0より大きい整数を入力し、0から入力した整数まで順に
表示するプログラムを、while文を用いて作成してください
(2)納得するまで「おみくじ」を引き続けられるプログラム
※ while文、while文の無限ループ、do while文などが使え
ます
※ おみくじの判定には rand() 関数と if文またはswitch~
case文などを使ってみてください