繰り返し while文 for文

「繰り返し while文 for文」の編集履歴(バックアップ)一覧はこちら

繰り返し while文 for文」(2017/08/21 (月) 13:20:28) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

**10.繰り返し while文 for文 同じようなことを繰り返させるのに,同じようなことをひたすら書き続けるのは大変ですね. 例えば1から10までの数字を表示させることを考えます. 馬鹿正直に1行づつ書くと、下のプログラムのようになります. #include <stdio.h> int main(void) { printf("1\n\r"); printf("2\n\r"); printf("3\n\r"); printf("4\n\r"); printf("5\n\r"); printf("6\n\r"); printf("7\n\r"); printf("8\n\r"); printf("9\n\r"); printf("10\n\r"); return 0; } 今回は10までの数字でしたが、10000までの数字を1つずつ表示するとなったらどうすればよいでしょうか。 こうした単純な繰り返しこそコンピュータの得意技です.繰り返しの制御構文にwhile文,for文などがあります. while文について 繰り返し行う構文の一つです. 書式 while文で記述 (繰り返し開始時に行う処理) while(条件式) { 繰り返したい処理 ・ ・ ・ 1周するごとに実行する文 } while文は条件式が真のとき、{ }内の処理を繰り返します。 1から10000までの数字を表示させるプログラムをwhile文で記述します. #include <stdio.h> int main(void) { int x = 1; while(x < 10001) { printf("%d\n\r", x); x++; } return 0; } 動きを1行ずつ追っていきます. まず,ループ用変数としてiが用意します. 次の行でwhile()に当たります.ループ条件は1<10001なので真です.{}内に進みます. printf()で1を表示します. i++でループ回数を1増やし,iは2になります. }にあたったらwhile()に戻ります. 2<10001なので{}内に進みます. 3,4,...9999回も同様です. 10000回目 printf()で10000を表示します. i++でiは10001になります. 100001 < 100001は偽です.{}を飛ばします. return 0にあたり,プログラムを終了します. これをいちいち1~10000までprintfを書くよりはるかに楽に記述できています. また,繰り返し回数が変数にできるところも大きな利点です. for文について while文同様繰り返しを記述できる構文です. while文への書き換えも可能ですが,どちらで記述した方が簡潔かは場合によりけりです.適切な使い分けをしましょう. 書式 for(繰り返し開始時に行う式(初期化式); 条件式; 1周するごとに実行する式(更新式)) { 繰り返したい処理 ・ ・ ・ } 1から10000まで出力するプログラムを書いてみます. #include <stdio.h> int main(void) { int i; for(i = 0; i < 10000; i++) { printf("%d", i+1); } return 0; } 最初for文に入ったとき,for文の最初の文が実行され,iに0が代入されます. 次に真ん中の継続条件判定が行われ,これが真であるとき{}の中が実行され続けます. 最初iは0であり,0<10000は真なので実行されます. そして{}内に入りi+1,即ち1を出力します. }に当たったらfor文の最後i++が実行され,iが1増えて1になります. その次にfor文の継続条件判定を行います.1<10000は真なので実行されます. 2,3,4,...9999回目も同様です. 10000回出力後, i++の結果iが10000になると継続条件判定10000<10000が偽になるのでfor文から抜けます. その下のreturn 0でプログラムが終了します. 簡潔にまとめるとこんな感じです. int i; (繰り返しカウント用変数.) for(i = 0; i < (繰り返したい回数); i++) { 繰り返したい処理 ・ ・ ・ } このようにして全く等価なfor文とwhile文を書き換えられます. for文で記述 for(初期化式; 条件式; 更新式) { 繰り返したい処理 ・ ・ ・ } while文で記述 (初期化式) while(条件式) { 繰り返したい処理 ・ ・ ・ 更新式 } 例題1 : 1つの正数nを入力し, 1+2+3+…nを計算し出力する(for文で) #include <stdio.h> int main(void) { int i, n, answer = 0; printf("正整数を入力してください:"); scanf("%d", &n); for(i = 0; i < n; i++) { anwser += i+1; } printf("1から%dまでの総和は%dです", n, answer); return 0; } 例題2 : 例題1をwhile文で #include <stdio.h> int main(void) { int i = 0, n, answer = 0; printf("正整数を入力してください:"); scanf("%d", &n); while(i < n) { answer += i+1; i++; } printf("1から%dまでの総和は%dです", n, answer); return 0; } 演習1 : 九九の表を出力する. 演習2 : 1つの正数nを入力し,素数かどうか判定する.
**10.繰り返し while文 for文 同じようなことを繰り返させるのに,同じようなことをひたすら書き続けるのは大変ですね. 例えば1から10までの数字を表示させることを考えます. 馬鹿正直に1行づつ書くと、下のプログラムのようになります. #include <stdio.h> int main(void) { printf("1\n\r"); printf("2\n\r"); printf("3\n\r"); printf("4\n\r"); printf("5\n\r"); printf("6\n\r"); printf("7\n\r"); printf("8\n\r"); printf("9\n\r"); printf("10\n\r"); return 0; } 今回は10までの数字でしたが、10000までの数字を1つずつ表示するとなったらどうすればよいでしょうか。 こうした単純な繰り返しこそコンピュータの得意技です.繰り返しの制御構文にwhile文,for文などがあります. while文について 繰り返し行う構文の一つです. 書式 while文で記述 (繰り返し開始時に行う処理) while(条件式) { 繰り返したい処理 ・ ・ ・ 1周するごとに実行する文 } while文は条件式が真のとき、{ }内の処理を繰り返します。 1から10000までの数字を表示させるプログラムをwhile文で記述します. #include <stdio.h> int main(void) { int x = 1; while(x < 10001) { printf("%d\n\r", x); x++; } return 0; } 動きを1行ずつ追っていきます. まず,ループ用変数としてiが用意します. 次の行でwhile()に当たります.ループ条件は1<10001なので真です.{}内に進みます. printf()で1を表示します. i++でループ回数を1増やし,iは2になります. }にあたったらwhile()に戻ります. 2<10001なので{}内に進みます. 3,4,...9999回も同様です. 10000回目 printf()で10000を表示します. i++でiは10001になります. 100001 < 100001は偽です.{}を飛ばします. return 0にあたり,プログラムを終了します. これをいちいち1~10000までprintfを書くよりはるかに楽に記述できています. また,繰り返し回数が変数にできるところも大きな利点です. for文について while文同様繰り返しを記述できる構文です. while文への書き換えも可能ですが,どちらで記述した方が簡潔かは場合によりけりです.適切な使い分けをしましょう. 書式 for(繰り返し開始時に行う式(初期化式); 条件式; 1周するごとに実行する式(更新式)) { 繰り返したい処理 ・ ・ ・ } 1から10000まで出力するプログラムを書いてみます. #include <stdio.h> int main(void) { int i; for(i = 0; i < 10000; i++) { printf("%d\n\r", i+1); } return 0; } 最初for文に入ったとき,for文の最初の文が実行され,iに0が代入されます. 次に真ん中の継続条件判定が行われ,これが真であるとき{}の中が実行され続けます. 最初iは0であり,0<10000は真なので実行されます. そして{}内に入りi+1,即ち1を出力します. }に当たったらfor文の最後i++が実行され,iが1増えて1になります. その次にfor文の継続条件判定を行います.1<10000は真なので実行されます. 2,3,4,...9999回目も同様です. 10000回出力後, i++の結果iが10000になると継続条件判定10000<10000が偽になるのでfor文から抜けます. その下のreturn 0でプログラムが終了します. 簡潔にまとめるとこんな感じです. int i; (繰り返しカウント用変数.) for(i = 0; i < (繰り返したい回数); i++) { 繰り返したい処理 ・ ・ ・ } このようにして全く等価なfor文とwhile文を書き換えられます. for文で記述 for(初期化式; 条件式; 更新式) { 繰り返したい処理 ・ ・ ・ } while文で記述 (初期化式) while(条件式) { 繰り返したい処理 ・ ・ ・ 更新式 } 例題1 : 1つの正数nを入力し, 1+2+3+…nを計算し出力する(for文で) #include <stdio.h> int main(void) { int i, n, answer = 0; printf("正整数を入力してください:"); scanf("%d", &n); for(i = 0; i < n; i++) { answer += i+1; } printf("1から%dまでの総和は%dです\n\r", n, answer); return 0; } 例題2 : 例題1をwhile文で #include <stdio.h> int main(void) { int i = 0, n, answer = 0; printf("正整数を入力してください:"); scanf("%d", &n); while(i < n) { answer += i+1; i++; } printf("1から%dまでの総和は%dです\n\r", n, answer); return 0; } 演習1 : 九九の表を出力する. 演習2 : 1つの正数nを入力し,素数かどうか判定する.

表示オプション

横に並べて表示:
変化行の前後のみ表示: