p.94 for文
・while文の機能拡張バージョンで、前判定繰返し。
・while文でよく使われるパターンを1つにまとめて「●回繰返す」を一目で分かるように書ける構文
【while文】
int カウンタ = 0;
while(カウンタ < 回数) {
繰返し内容 //回数の分だけ繰返される
カウンタ++;
}
【for文】
for(int カウンタ = 0; カウンタ < 回数; カウンタ++;) { //回数分だけ繰返す
繰返し内容
}
・カウンタの初期値や増加(減少)などは自由にできるので、回数がわかる繰返しはforで書くと良い
・for文の{}も対象が1文であれば省略できる
※ 業務ではローカルルールやチームルールに従うこと
p.98 演習4-13 仕様とヒント
・for文を用いること ・for文の前で「1からnum(入力値)1」と表示しておく ・for文の前で合計用の変数sumを0に初期化しておく ・for文でカウンタiを1から、num以下である間、インクリメントしながら繰返す ・for文の内容は「sumにiを足し込む」 ・for文を終えてから「sumです。」を表示すれば良い
作成例
//p.91 演習4-13
#include <stdio.h>
int main(void)
{
int num; //入力用の変数を宣言
printf("nの値:");
scanf("%d", &num); //キーボードから整数値を入力
printf("1から%dまでの総和は", num);
int sum = 0;
for (int i = 1; i <= num; i++) { //iを1から、num以下である間、+1しながら繰返す
sum += i; //sumにiを足し込む
}
printf("%dです。", sum);
return 0;
}
p.91 演習4-14は割愛(自由参加課題とします)
p.91 演習4-15 ヒント
・「何cmから」を変数begin、「何cmまで」を変数end、「何cmごと」を変数eachに格納する。
・すると、for(int i = begin; i <= end; i += each) {…} となる
作成例
//p.91 演習4-15
#include <stdio.h>
int main(void)
{
int begin, end, each; //入力用の変数(開始値、終了値、増分)を宣言
printf("何cmから:"); scanf("%d", &begin); //キーボードから整数値を入力
printf("何cmまで:"); scanf("%d", &end); //キーボードから整数値を入力
printf("何cmごと:"); scanf("%d", &each); //キーボードから整数値を入力
for (int i = begin; i <= end; i += each) { //iを開始値から、終了値以下である間、+増分しながら繰返す
printf("%dcm %.2fkg\n", i, (i - 100) * 0.9); //身長と標準体重(小数点以下2桁)を表示
}
return 0;
}
p.99 for文による一定回数の繰返し(追加事項)
・for文のカッコ内で初期化したカウンタ用の変数はforのブロック内でのみ有効
・よって、カウンタ用の変数をfor文の外でも用いたい場合は、for文の前で宣言すること
・例:
int i; //前に宣言
for (i = begin; i <= end; i += each) {…} //初期化せず代入にする
printf("%dcm以上は表示しません", i); //forの繰返しを抜けた後のカウンタを利用できる
p.100 演習4-16、4-17は割愛(自由参加課題とします)
p.100 演習4-18 ヒント
・p.97 list0413.cppを元にすると良い
・for文の{}を記述する
・putchar('*');の後で、iを5で割った余りが0ならば、putchar('\n'); を実行
・for文の後で、個数が5の倍数でなければ改行すれば良い
作成例
//p.100 演習4-18
#include <stdio.h>
int main(void)
{
int num; //入力用の変数を宣言
printf("何個*を表示しますか:"); scanf("%d", &num); //キーボードから整数値を入力
for (int i = 1; i <= num; i++) { //iを1から、num以下である間、+1しながら繰返す
putchar('*');
if (i % 5 == 0) { //5回ごとに
putchar('\n'); //改行
}
}
if (num % 5 != 0) { //回数が5の倍数でなければ
putchar('\n'); //最後に改行していないので改行する
}
return 0;
}
提出:p.101 演習4-19 ヒント
・まず、list4-17のforとifの省略されている{}を書き込む
・forの前で個数用の変数cntを0に初期化しておく
・if文の中でcntをインクリメント
・forの後で「約数はcnt個です。」と表示
・改行がlist4-17とは異なっているので注意