4-10 繰り返し処理(6)
while文の導入―


☆ 総目次へ ★ 第4章節へ ★ 前節へ ★ 次節へ ☆

☆ 『Delphi入門』 4-10繰り返し処理(6)-while文の導入- ☆
whileは『指定した条件を満たしている間は処理を繰り返すという制御を行い、繰り返し実行する回数が不明のときに使用します。
while ( 条件 )
   

     

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

練習問題

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

プログラムを実行して、結果を確かめてみましょう。ちゃんと「14分」という答えが出ましたか?
注意
whileは、{}の間に記述した処理を実行する前に、条件式を判断します。つまり、条件を満たしていない場合は、繰り返し処理が1度も実行されません。例えば、上記のwhileのプログラムを”while (CSpinEditBact->Value > 1000)” にすると、繰り返し処理は度も実行されませんので、気をつけてください。

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

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

if文などと同様に、指定した条件を満たしている間、繰り返し実行する処理が文だけの場合は、処理のまとまりを表す{}を省略して書くことができます。しかし、後で繰り返し処理を増やしたくなった場合に  と を付け忘れる可能性があります。これまで同様、たとえ処理が1つでも常に  と をつけることを勧めます。
                      Delphiとの相違点                      
前のプログラムでは、何度もボタンを押していくとそのうち答えが求まります。でも、ボタンを1回おすだけで答えが求まるプログラムにしたいですね。

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


しかし、困りました。「何回繰り返すか」を指示する下線部にな何と書いていいのか、わからないのです。
そこで、
基礎課題4-22

1+2+3+4+…と足していくと、はじめて10000を超えるのはどこまで足したときでしょうか?プログラムを使って求めなさい。(整数の和の公式n(n2+1)は使わないで下さい。)

基礎課題4−22 解答
応用課題4-4

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

この問題の場合、Delphiでは普通に5%(1.05)を掛けると、「互換性がない」とエラーが出てコンパイルすることができず、実数型から整数型に型変換を行わなければなりませんでした。しかし、C++Builderでは、命令がなくても、実数型から整数型は命令がなくても切り捨てられることになっています。Delphiより、少し簡単にプログラムを書けますね。
応用課題4−4 解答
     Delphiとの相違点     
☆ 『Delphi入門』 4-10繰り返し処理(6)-while文の導入- ☆

☆ 総目次へ ★ 第4章節へ ★ 前節へ ★ 次節へ ☆