3.5 doループ

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

目次

サンプル・プログラム

約数を求める

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

0035:         //約数計算
0036:         let a = Math.floor(n / 2) + 1;     //Nの2分の1整数
0037:         let d = 1;                           //除数
0038:         let divisor = '';                   //約数を格納
0039:         do {
0040:             if (n % d == 0) {
0041:                 if (d > 1) {
0042:                     divisor += '';
0043:                 }
0044:                 divisor += d.toString();
0045:             }
0046:             d++;
0047:         } while (d < a);
0048:         if (n > 1) {
0049:             divisor += '' + n.toString();        //自分自身
0050:         }
0051:         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