CodeZine(コードジン)

特集ページ一覧

while文の演習と関数

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/10/24 11:00

目次

繰り返し、ループ三兄弟の末の弟 do~while

 さて、制御文の最後をしめくくるのはdo~whileです。末の弟は目立たない性格で? これは実際の組み込みプログラムでもほとんど使いません。しかし、場合によってはforwhileには置き換えできない便利な繰り返し処理です。まずは文法から見てみましょう。

 do~while文の文法は、以下のとおりです。

do{     実行文1;     実行文2;         : } while (条件);

 while文とは条件判断の位置が違いますね。while文では、まず条件を判断します。最初から条件に一致しなければ、実行文は一度も実行されません。一方でdo~whileは、とりあえずまず実行文をやって、それから条件判断をします。「ごちゃごちゃ言わずに、まずはやってみて話はそれからさ!」という、目立たないけど実行タイプな弟です。

 少しわざとらしい例を示します。似たような処理をwhile文とdo~while文で書いたのが以下です。

(a)
while( i < 5 ){   i = i + 1; }
(b)
do{   i = i + 1; } while (i < 5 );

 これらは、変数iがどのような値で繰り返し処理に入るかで結果が異なります。iが0の場合、(a)(b)とも、繰り返しを抜けたときiの値は5です。

 しかし、もともとiが5だったらどうしょう。(a)では、最初の条件判断ではじかれて繰り返し処理に入りませんから、iは5のまま通り過ぎます。一方(b)では、先にi = i + 1;が実行されますので、繰り返し処理を抜けたあとiは6になります。

 do~whileはマジカルボックスのプログラムの中にも登場しますので、実例はそこで見てみてください。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:たった5つのルールではじめるC言語開発

もっと読む

著者プロフィール

  • 舘 伸幸(タチ ノブユキ)

    NECマイクロシステム株式会社 勤務 NPO法人SESSAME 所属 開発ツールのソフトウェア開発を経て組込みソフトウェア開発に従事。プライベートにも半田ごては手放さない。 2006年からSESSAME に参加。若い世代に物を作る楽しさを伝えていきたい。

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5