繰り返し(1)

ブロックを繰り返し実行します。繰り返しのことをループ(loop)と呼んだりします。繰り返しを行う代表的な 以下の制御文について取り上げます。

  • while文
  • for文

while文

while文は下記の形(読みやすいように改行・インデントしてます)をしています。条件式がtrueである限りブロックの内容を繰り返し実行します。

while ( 条件式 ) {
    ブロック
}

例1 0からnまでの数字を出力するプログラム(while文)

「変数iの値を0からnまで変化させてそのつど変数iの値を出力する」

ということをします。このような計算や問題を解決するための手順・方式をアルゴリズムといいます。アルゴリズムを考えることはプログラムを作る重要な一歩です。

繰り返しごとに値が変化し、終了判定で使われる変数をループ変数と呼びます。この場合は変数iがループ変数になります。

プログラム

var n=5; // 変数nの値を定義(任意)

var i=0;  // 変数iを0に初期化

while (i<=n) {  // 変数iの値が変数nの値より小さい間繰り返し
    trace(i); // 変数iの値を出力
    i=i+1; // 変数iの値を1増やす
};

実行結果

0
1
2
3
4
5

例2 nの階乗を計算するプログラム(while文)

nの階乗はn×(n-1)×…×2×1です。これを計算するために、

「nの数をひとつずつ1になるまで減らして行き、階乗を計算するために用意した変数にnの値を順にかけてゆく」

ということをします。

プログラム

var n=10; // 階乗を計算したい数
               
trace("nの階乗は");

var factorial=1; // 変数factorialの初期値を1

while ( n>1 ) { // 変数nが1より大きい間繰り返し
    factorial = factorial * n ; // 変数factorialに変数nの値をかけて代入
    n = n - 1; // 変数nの値を1減らす
};

trace(factorial+"です。");

実行結果

10の階乗は3628800です。

for文

for文は

for ( 繰り返しに入る前に実行する文; 条件式; 繰り返しごと最後に実行する文 ){
    ブロック
};

の形(改行・インデント後)をしています。通常は

for ( ループ変数の初期化; 条件式; ループ変数の増減 ) {
    ブロック
};

という形で使われるのが普通です。

例1 0からnまでの数字を出力するプログラム(for文)

前出のプログラムをfor文で書き直したものです。

プログラム

var n=5;  // 変数nの値を定義(任意)

for (var i=0; i<=n; i=i+1) {  // 変数iの値が変数nの値より小さい間繰り返し
    trace(i); // 変数iの値を出力
};

実行結果

0
1
2
3
4
5

例2 nの階乗を計算するプログラム

前出のプログラムをfor文で書き直したものです。

プログラム

var n = 10; // 階乗を計算したい数

var factorial = 1; // 変数factorialの初期値を1

for (var i = n; i > 1; i = i - 1) { // 変数iが10から2までの間繰り返し
    factorial = factorial * i ;
};

trace(n+"の階乗は"+factorial+"です。");

実行結果

10の階乗は3628800です。

練習問題

入力された個数だけ"*"を出力するプログラムを作成せよ。

例 入力が3のとき…***、入力が5のとき…*****