3.5 doループ

(1/1)
doループ
前回作った約数を求めるプログラムを例に、doループwhileループの違いを学ぶ。

目次

サンプル・プログラム

約数を求める

3.4 whileループ」で作った約数を求めるプログラム "while2.html" を doループ に置き換えたプログラムが "do1.html" である。

  35:         //約数計算
  36:         let a = Math.floor(n / 2+ 1;      //Nの2分の1整数
  37:         let d = 1;                          //除数
  38:         let divisor = '';                   //約数を格納
  39:         do {
  40:             if (n % d == 0) {
  41:                 if (d > 1) {
  42:                     divisor +', ';
  43:                 }
  44:                 divisor +d.toString();
  45:             }
  46:             d++;
  47:         } while (d < a);
  48:         if (n > 1) {
  49:             divisor +', ' + n.toString();     //自分自身
  50:         }
  51:         ret = '約数は... ' + divisor;

doループは次のようにして使う。
do {
    処理;
} while (繰り返し条件);
繰り返し条件が成立する間、ブレース {...} で囲まれたブロック文を実行する。
whileループとの違いは、doループでは処理を1度以上実行することである。
流れ図で比較しておこう。
whileループとdoループ

コラム:Pythonにおける制御文

Python
プログラムで使う命令は少なければ少ないほど読みやすく、不具合が出たときに修正が容易になる。

今回の例題で分かるように、doループwhileループで置き換えることができる。できなかったとしても、while条件式の部分を、if条件式とbreakの組み合わせに置き換えることで置換できる。実際、Python には doループが存在しない。
また、Python には switch文も存在しない。
Python はデータ構造が充実しており、リストや辞書を使うことで、 switch文を使う必要はなくなる。

制御文を使うのは、たいていの場合、データの内容(オブジェクト)による。オブジェクトに直結して制御を行うPythonは、他の言語よりオブジェクト指向であると言える。
(この項おわり)
header