【C言語】繰り返し文の使い方

C言語の繰り返し処理
・for文
・while文
・do~while文

for文

【書き方】
for(初期の式; 繰り返すかどうかの式; 変化のための式){
文1; /*ブロック内の文を上から順に処理していく*/
文2;
}/* 繰り返し処理における文が2つ以上場合、必ず{}を付ける */

(確認)
無題

実行結果無題3

【繰り返し処理の手順】
for文では、繰り返す回数を数えるため、変数を利用する。慣例で「i」や「j」がよく使われる。

for( 式1; 式2; 式3 ){
文;
}

①式1に従い、変数iを初期化する。
② 式2の条件が真であれば、(ブロック内の)文を処理する。
③ 式3を処理する
④式2の条件が偽になるまで、②、③を繰り返す。

for( 初期化式; 繰り返すかどうか調べる式; 変化のための式 )

【練習1 】 
”hello, C world! ” を10回表示するプログラムをfor文を用いて、作成してみよう”。
https://paiza.io/projects/i45Z2Mv_it2PuyxHz3SWRQ

【終わらない繰り返し処理】画像3

実行結果画像4

iが0を初期値として、iが0以上かどうかに ついて、真ならば、文を処理し、iに1を加算 する。この場合、概念上持続的に、“hello,C World!” が出力される(iはいつも0以上)。 
こうなった場合「Ctrl」+「C」で処理を中断できる。
※無限のループのあるプログラムで (端末上は)何の表示もされない場合がある

(確認)変数(ループ変数)をループ内で使う画像5

実行例
画像6

(確認)繰り返しの回数について値を読み込む画像7

実行結果(※入力が6の場合)
画像8

(確認)入力した数までの合計を求める画像9

実行結果(※入力が10の場合)画像10

【練習2】
2のn乗を求めるプログラムについて、for文を用いて作成してみよう(nは整数とする)
https://paiza.io/projects/dBrKDvPKhGjGr9tOsEtjiA

(確認)元利合計を求める
1年で7%のの利息がつく定額預金を想定する。元金を10000円として、1年後から 10年後までの10年間の預金総額(の近似値)を表示するプログラムを考える。 (簡単のため、小数点以下の数値はそのまま引き継がれることとする。)画像13

実行結果画像14

【練習3】
1からnまでの2乗和を求めるプログラムを作成してみよう。https://paiza.io/projects/eTQy28Me9irRiieGMpK78w

(確認) (繰り返しの)処理のなかでscanf文を利用する場合:合計と平均を求める。画像13

実行結果(※入力5,10,15,30,40,50の場合)画像14

【練習4】
人数分のBMIを求める。
n人の身長(cm)と体重(kg)を、次々に読み込んでいき、BMIを求めてみよう。

ヒント:
画像15


https://paiza.io/projects/mCpMT9xwbxCuPSTKyl2zJA

While文

forと同じように指定した文を繰り返す構文

While(条件){
文;
}

(確認)while文を使ってみよう画像16

実行結果
画像17

(確認)慣用的な条件を使う
ユーザーが0を入力すると繰り返し処理が終了するプログラム画像18

入力画像20

実行結果画像19

ポイント:0以降の入力は表示されていない

【練習5】論理(否定)演算子の活用
 数値を入力させ、偶数でなければ、終了するプログラムを作成してください。ただし、 条件式において否定演算子を用いてください。
https://paiza.io/projects/8ZTPnFBOE_rA9UZdeLYgsA

do~while文

最後に指定した条件が真である限り、ブロック内の処理を繰り返す。 「do~while文」が、「while文」と異なるところは、条件を判断する前に、ブロック内の 処理を行うことである。最低1回は、ブロック内の処理が行われる。

do{
文;
}while(条件);

(確認)do~while文を使う画像21

実行結果画像22

(確認)do~while文を利用して、入力した点数の合計を出力するプログラムを作成してみよう。画像23

実行結果(※入力が50,40,30,0の場合)画像24


【練習6】
整数を入力させ、正の数が入力されれば、その数の2.5倍の値を出力させたい。 また整数が入力されるたびに、その値を出力するようにしたい。do~while文を用いて 0または負の整数が入力されれば、再入力を促してみよう。
  https://paiza.io/projects/-eQhAZHP0bngrrqHijvlmw



よろしければサポートお願いします! いただいたサポートはクリエイターとしての活動費に使わせていただいております!