Ameba Ownd

アプリで簡単、無料ホームページ作成

6. while文(繰り返し2)

2017.08.28 05:55

(1) while文の形式
 for文の他にくり返しによく使われる命令がwhile文です。 次の書式で表します。

while (条件式){
  命令…
}

 条件式を満足する限り、命令…の部分をくり返す。よって、命令…の中には条件式に影響する変数を変化させるような命令が存在するか、whileのくり返しから抜け出すbreak文がある必要があります。

(2) while文の例
 次の2つのプログラムは1から8までの階乗を計算するプログラムである。2つのプログラムの出力結果は同じである。

 一つ目のプログラムは、条件式にi<9となっています。iの最初の値は1であり、12行目のprintf関数のところでi++となっていてここでインクリメント(1つ増える)します。i<9を満足する間は{ }の中の命令を実行する。i=9になるとwhileの繰り返しをおえます。という事で、iが1~8で{ }内の命令が実行されます。なお、i++はprintfを実行してから1増え、++iとなっていると1増えてからprintf文が実行されるます。

 二つ目のプログラムでは、条件式が1となっています。1は真という事なので、条件式によって繰り返しが終わることはありません。では、無限ループかというとそうではなく、break文が実行されると繰り返しから抜けます。条件はi>8なのでiが9になった時にbreak文が実行されます。よって、12行目のprintf文の表示はi=8の時までとなります。

演習1 while文を使って1から20までの数値をすべて加算して結果を表示させるプログラムを作成せよ。

演習2
 次のプログラムを実行した際の実行過程を説明する文章を下に示す。この文章のカッコにあてはまる数値あるいは真か偽かを答えよ。

 このプログラムでは初期値はmが6、nが4である。
くりかえし1回目:11行目のwhile文で最初は条件式は真であるので、{}内が実行される。12行目のif文の条件式は(  )であり、if, else部分の実行が終わるとm,nの値は(  )と(  )になる。
くりかえし2回目:11行目の条件式は(  )である。12行目のif文の条件式は(  )であり、if, else部分の実行が終わるとm,nの値は(  )と(  )になる。
くりかえし3回目:11行目の条件式は(  )である。
最後に出力される値は(  )である。