O 棟 529号室
テュールスト マーティン ヤコブ
http://www.sw.it.aoyama.ac.jp/2005/Programming%20Basics%20II/lecture7.html
© 2005 Martin J. Dürst 青山学院大学
提出: 来週の授業 (11月 21日) までに 3 番のプログラムと入出力経過を提出して下さい。
for
文)、続く条件を指定するか (while
文)for
文の例1 から 10 の 3乗を計算する
int n; for (n=1; n<=10; n++) { printf ("%d の 3乗 = %d.\n", n, n*n*n); }
for
文の文法if
文と同じ( )
内は一つの条件ではなくて三つの項目がある:
for
文が始まるときに実行されるfor
文の最後に行われる次の繰り返しへのステップfor
文の実行for
文は次の通りに実行される:
(
初期化;;)
(
;
条件;)
:
合わないときに繰り返しを断念、for
文の後から続く{ }
内の文を実行(
;
;
次の繰り返しへのステップ)
while
文の例ユーザが止めるまで入力した数の 3乗を計算する:
int n; printf ("Input a number, 0 to stop: "); scanf ("%d", &n); while (n != 0) { printf ("Cube of %d is %d.\n", n, n*n*n); printf ("Input a number, 0 to stop: "); scanf ("%d", &n); }
for
文と while
文の関係for
文を while
文で書けるし、逆も可能
変更前 | 変更後 |
---|---|
for (n=0;n<10;n++) { /* 処理 */ } |
n=0; while (n<10) { /* 処理 */ n++; } |
while (n != 0) { /* 処理 */ } |
for (; n!=0; ) { /* 処理 */ } |
繰り返しは配列の処理によく使われる
配列の長さが決った場合には for
文を使う
20 個のデータの配列の場合に指数 (番号) は 0~19
に注意
(for (i=0; i<20; i++) { ... }
)
配列の長さが分からない場合に while
文を使う
(例: 文字列: 終端マークまで処理する)
printf
で %d
の代わりに %3d
を使うと数字が揃う)