前回作った約数を求めるプログラムを例に、doループと whileループの違いを学ぶ。
サンプル・プログラム
約数を求める
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ループは次のようにして使う。
whileループとの違いは、doループでは処理を1度以上実行することである。
流れ図で比較しておこう。
do {繰り返し条件が成立する間、ブレース {...} で囲まれたブロック文を実行する。
処理;
} while (繰り返し条件);
whileループとの違いは、doループでは処理を1度以上実行することである。
流れ図で比較しておこう。
コラム:Pythonにおける制御文
プログラムで使う命令は少なければ少ないほど読みやすく、不具合が出たときに修正が容易になる。
今回の例題で分かるように、doループは whileループで置き換えることができる。できなかったとしても、while条件式の部分を、if条件式とbreakの組み合わせに置き換えることで置換できる。実際、Python には doループが存在しない。
今回の例題で分かるように、doループは whileループで置き換えることができる。できなかったとしても、while条件式の部分を、if条件式とbreakの組み合わせに置き換えることで置換できる。実際、Python には doループが存在しない。
また、Python には switch文も存在しない。
Python はデータ構造が充実しており、リストや辞書を使うことで、 switch文を使う必要はなくなる。
制御文を使うのは、たいていの場合、データの内容(オブジェクト)による。オブジェクトに直結して制御を行うPythonは、他の言語よりオブジェクト指向であると言える。
Python はデータ構造が充実しており、リストや辞書を使うことで、 switch文を使う必要はなくなる。
制御文を使うのは、たいていの場合、データの内容(オブジェクト)による。オブジェクトに直結して制御を行うPythonは、他の言語よりオブジェクト指向であると言える。
(この項おわり)