ループだよ!難しいよ! 第5章 while(ループ);
前回のC++講座 double型の変数で小数点以下の計算も可能! 第5章 ループ
復習問題 実行結果と同じになるように、プログラムを組んでください プログラムは3数の実数を入力、その積を計算し、 小数点第3位までの計算結果を出力しています 第5章 ループ
解答 #include<stdio.h> int main(){ double a,b,c; printf("Input a > ");scanf("%lf",&a); printf("Input b > ");scanf("%lf",&b); printf("Input c > ");scanf("%lf",&c); printf("%f×%f×%f=%.3f\n",a,b,c,a*b*c); return 0; } 第5章 ループ
while ループ #include<stdio.h> int main(){ while(1) printf(“ほっほほーい\n"); return 0; } while 括弧()内が条件を表すのはif文と同じ 真(1)ならばループ 偽(0)ならばループを抜け出す 条件を満たしたときに反映させるプログラムが 1行の場合、括弧{}を省略できるのも同じ
a--; ←a=a-1; a++; ←a=a+1; 括弧()内の値が変化しないと∞ループに #include<stdio.h> int main(){ int a=5; while(a){ printf("%d\n",a); a--; } return 0; a--; ←a=a-1; a++; ←a=a+1; 第5章 ループ
練習問題 実行結果と同じになるようにプログラムを書いてください プログラムは入力した値分だけ『★』を表示させています ヒント (変数が入力した値になるまで) {★が出力される、変数を変化させる} 第5章 ループ
解答 #include<stdio.h> int main(){ int a; printf("Input a > ");scanf("%d",&a); while(a>0){ printf("★"); a--; } printf("\n"); return 0; 第5章 ループ
a++; b--; の他に c+=5 ← c=c+5 d-=7 ← d=d-7 e*=2 ← e=e*2 f/=6 ← f=f/6 右辺に変数があるので 初期値を入れておく必要がある 第5章 ループ
階乗の計算 nの階乗 n!=1×2×3×・・・×(n-2)×(n-1)×n while内の条件:nの値になるまでiをループさせる ループ内容:ansにiをかける ループ1週目:ans*=1 ループ2週目:ans*=2 ループi週目:ans*=i ループn週目:ans*=n 第5章 ループ
解答 #include <stdio.h> int main(){ int a; int i=1; int ans=1; printf("Input a > ");scanf("%d",&a); while(i<=a){ ans*=i; i++; } printf("%d! = %d\n",a,ans); return 0; 第5章 ループ
おまけ:breakが使える #include<stdio.h> int main(){ int a; while(1){ printf("Input a > "); scanf("%d",&a); if(a<0)break; } printf(“ループから”); printf(“抜け出しました\n"); return 0; 第5章 ループ
練習問題 実行結果と同じになるようにプログラムを書いてください プログラムは負の値が入力されるまで、入力された値を加算し、出力するプログラムです 第5章 ループ
解答 #include <stdio.h> int main(){ int num; int total=0; printf("Input num > ");scanf("%d",&num); while(num>=0){ total+=num; printf("Input num > "); scanf("%d",&num); } printf(“入力した値の合計は%dです\n",total); return 0; 第5章 ループ
for 次回予告 まだまだループ続くよ! whileよりも難しい印象を受けますはい while同様 変数の初期値 条件の範囲 変数の変化 変数の初期値 条件の範囲 変数の変化 が必要 けどwhileと違うのはその3つを・・・ 第5章 ループ