4−9 繰り返し処理(5)
-
while文の導入-


 前のプログラムでは、何度もボタンを押していくとそのうち答えが求まります。
でも、ボタンを1回おすだけで答えが求まるプログラムにしたいですね。

 何回もボタンを押すことは、forででてきた「繰り返し」と呼ばれる操作(作業)です。
ですから、まずはforを使ってボタンを1回押すだけのプログラムを考えてみましょう。
プログラムは次のようになります。


しかし、困りました・・・
何回繰り返すか」を指示する下線部にな何と書いていいのか、わかりません。

そこで・・・


whileは『指定した条件を満たしている間は処理を繰り返すという制御を行い、
繰り返し実行する回数が不明のときに使用します。
while ( 条件 ){
    

     ・←条件を満たしている間、繰り返し実行する処理;
     ・
whileの後ろには、セミコロン(;)を付けません。

練習問題

下記のプログラムは、CSpinEditBact->Value10000未満の間、繰り返し処理を実行する、
上記のforのプログラムをwhileにしたものです。変更してみてください。

プログラムを実行して、結果を確かめてみましょう。ちゃんと「14分」という答えが出ましたか?

注意
 whileは、{}の間に記述した処理を実行する前に、条件式を判断します。
つまり、条件を満たしていない場合は、繰り返し処理が1度も実行されません。

 例えば、上記の
whileのプログラムを”while ( Bact > 1000)” にすると、
繰り返し処理は
度も実行されませんので、気をつけてください。

 条件によっても処理が変わるという点でifwhileは似ていますが、ifは条件が成立しなくても1回きり
while
は条件が成立している間何度でも繰り返す点が違います。

do〜whileは、{}の間に記述した処理を実行したあとに、条件式を判断します。
つまり、最低でも1回は繰り返し処理を行うことになります。
「(条件)」の後ろには必ず「;」がつきます。
do {
     ・
     ・←条件を満たしている間、繰り返し実行する処理;
     ・
} 
while ( 条件 );

 if文などと同様に、指定した条件を満たしている間、繰り返し実行する処理が文だけの場合は、
処理のまとまりを表す{}を省略して書くことができます。

 しかし、後で繰り返し処理を増やしたくなった場合に  と を付け忘れる可能性があります。
これまで同様、たとえ処理が1つでも常に  と をつけることを勧めます。


基礎課題4−19
1+2+3+4+…と足していくと、はじめて10000を超えるのは
どこまで足したときでしょうか?プログラムを使って求めなさい。

(整数の和の公式n(n2+1)は使わないで下さい。)

基礎課題4−19の解答


応用課題4−C
1年間に5%の利子がつく(つまり貯金が1.05倍になる)口座があります
(今となっては夢のような利率ですが・・・。)この口座に10000円を預けておくと、
何年後に30000円以上になるでしょうか?
右のようなプログラムを作って答えを求めてください。

応用課題4−Cの解答