第5週スライド

5回目
繰り返し処理
68
反復処理
for
繰り返し実行
文
繰り返し回数既知
文
while
do while
繰り返し回数不明
文
終了条件が満足される
まで実行
69
for文
for(n = 1; n <= 10; n=n+1)
;
この一つの実行文を繰り返す。
変数 n を用意する。
nの初期値; nの条件式; n の値変更方式
繰り返しの終了条件
例題 4-1
整数の合計
70
1
for文の応用
sum = 1 + 2 + 3 + …. + 100
Sn
はどうやって実行するか?
を第 n 項までの部分和とすると、
S = S + n +1
コンピュータの解釈
sum = sum + n+1;
n +1
n
sum
sum = 0;
for(i=n; n<=100; n++)
sum = sum + n;
+n+1
71
for文のステップ
i++
i
i--
i
= i + 1;
= i - 1;
1 + 4 + 7 + 10 + 13 + …. = ?
複数の文を実行する必要がある場合は 複文を
使う。
72
代入演算子
=
n = n + 1, n ← n + 1
+=
n += 1
n ++
-=
n -= 1
n --
*=
n *= a
/=
%=
n ← n*a
簡易型の書き方
CPUが専用の命令をもっているときは
高速に実行できる。
73
2
インクリメント演算子
a = n++
a = ++n
処理前代入
処理後代入
例 4.a, 4.b を比較する。
例題4-1を変更して、for文の中で、n = n+1をn++, ++nと
して実行してみよ。どのような違いがあるか考えてみよ。
74
for文の重ね合わせ
演習: 掛け算の九九を表にしなさい。
2次元(作表)の場合はfor文を2重にするのが
有効である。
内部パラメータと外部パラメータの変化をトレース
すると2重ループの動きがよく分かる。
応用: 行列演算
75
回数未知の繰り返し
判定)
while(
do
繰り返し処理部分の先頭で継続
の要・不要を判定。
繰り返し部分の末尾で継続の要・
判定) 不要を判定。
通常は繰り返し部分の先頭で判定を行う。
while(
76
3
while文
形式:
kei = 0;
while ( n <= 10)
{
n++;
初期値はループの外にある。
ループの中でパラメータの値を変更する
必要があるので、常に複文で使用する。
}
文の中にまとまって存在したものが、3カ所に分散
して記述されると考えれば分かりやすい。
例題4-1を
whileで書き直す
for(n=0; n <= 10; i++)
for
77
do while 文の特徴
do {
;
;
;
判定式) ;
while文と違い判定を最後に行う。
while文は一度も実行されないことがあるが、do while文は
少なくとも一回は実行される。
例題4-1を
do whileで書き直す
} while (
78
複文と無限繰り返し
for (n = 1; n <= 10; n++)
{
;
;
;
}
これ全体を一つの実行文と
見なす。
パラメータなど全て省略した for( ; ; )は無限繰り返しを
表す。
繰り返しのループから抜けるために break を用意する。
例: if ( t == 0) break;
例題 4-4
繰り返し回数不明の場合はwhileを良く用いる。 while(1)
79
4