Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
プログラミング初級
第5回 2017年5月8日
繰り返し文
1
第8章 繰り返し文
2
3
繰り返し処理(ループ)
for文
状態を初期化する
状態を変化させる
ある条件を満たさなくなるまで
繰り返す
4
#include <stdio.h>
int main(void){printf("Hello¥n");printf("Hello¥n");printf("Hello¥n");printf("Hello¥n");printf("Hello¥n");printf("Hello¥n");printf("Hello¥n");printf("Hello¥n");printf("Hello¥n");printf("Hello¥n");return 0;
}
for文を使ったプログラム
問題:画面に“Hello”と10回表示させる
#include <stdio.h>
int main(void){int i;
for (i = 1; i <= 10; i++) {printf("Hello¥n");
}
return 0;}
P108
P110
5
for文の決まり文句
for (i = 0; i < n; i++) {実行したい文の集まり
}
“n回繰り返す”の基本形
例)200回繰り返すint i;for (i = 0; i< 200; i++) {
実行したい文の集まり}
6
「繰り返す操作」の確認
#include <stdio.h>
int main(void){
int i;for (i = 0; i < 200; i++) {
printf("Hello¥n");}
return 0;}
#include <stdio.h>
int main(void){
int i;for(i = 1; i <= 200; i++) {
printf("Hello¥n");}
return 0;}
7
for文の応用
繰り返し変数を“利用”する
#include <stdio.h>
int main(void){
int i;for (i = 0; i < 200; i++) {
printf("%d¥n", i);}
return 0;}
#include <stdio.h>
int main(void){
int i;for (i = 1; i <= 200; i++) {
printf("%d¥n", i);}
return 0;}
8
for文の応用
繰り返し変数を“利用”する
#include <stdio.h>
int main(void){
int i;for (i = 20; i <= 40; i++) {
printf("%d¥n", i);}
return 0;}
9
for文の応用
繰り返し変数を“利用”する
#include <stdio.h>
int main(void){
int i;for (i = 20; i <= 40; i = i + 3) {
printf("%d¥n", i);}
return 0;}
10
for文の応用
繰り返し変数を“利用”する
P113
11
変数 i は繰り返しの回数を制御変数 wa には加算の合計値を求める変数 seki には掛け算の合計値を求める
9: for (i = 1; i <= 5; i++) {
10: wa = wa + i;
11: seki = seki * i;
12: }
変数の宣言
計算処理
wa = wa + i;
○右辺を計算する(wa + i)
○その結果を左辺に代入する
12
for文の応用
繰り返し変数を配列と組み合わせて利用する
#include <stdio.h>
int main(void){
int a[10] = {10,20,30,40,50,60,70,80,90,100};int i , total = 0;
for (i = 0; i < 10; i++) {total = total + a[i];printf("%d番目までの合計=%d¥n", i, total);
}printf("合計値=%d¥n", total);
return 0;}
10 20 30 40 50 60 70 80 90 100
a[0] a[9]
13
for文の応用
繰り返し変数を配列と組み合わせて利用する
#include <stdio.h>
int main(void){
char a[] = "TohokuGakuin";int i;
for (i = 0; i < 12; i++) {printf("%c", a[i]);
}printf("¥n");
return 0;}
T o h o k u G a k u
a[0] a[11]
i n
14
繰り返し処理(ループ)
while文ある条件を満たさなくなるまで
繰り返す
15
while文の決まり文句
while ( 繰り返しを継続する条件 ) {
実行したい文の集まり}
“n回繰り返す”の基本形
例)200回繰り返すint i = 0;while (i < 200) {
i++;}
16
while文とfor文の関係
for ( 計算①; 条件; 計算② ) {
実行したい文の集まり}
while文・for文ともに「繰り返し処理」
計算①;while ( 条件 ) {
実行したい文の集まり計算②;
}
17
while文を使ったプログラム
問題:画面に“Hello”と10回表示させる
P110
#include <stdio.h>
int main(void){int i;
for (i = 1; i <= 10; i++) {printf("Hello¥n");
}
return 0;}
#include <stdio.h>
int main(void){int i;
i = 1;while (i <= 10) {printf("Hello¥n");i++;
}
return 0;}
18
繰り返し処理(ループ)
while文+ break
繰り返し処理を指定した条件以外で
終了させたい
for文+ break
19
#include <stdio.h>
int main(void){int num;int i;
for (i = 0; i < 10; i++) {printf("数値を入力:");scanf("%d", &num);
if (num == 0) {break;
}
printf("数値 = %d¥n", num);}
printf("終了¥n");return 0;
}
break文を使ったプログラム
実行結果
breakの部分で
繰り返し処理は終了する
20
break文を使ったプログラム
実行結果
#include <stdio.h>
int main(void){int num;int i = 0;
while (i < 10) {printf("数値を入力:");scanf("%d", &num);
if (num == 0) {break;
}
printf("数値 = %d¥n", num);i++;
}
printf("終了¥n");return 0;
}
while文でも使える
21
キーボードから数字を入力して行くその数字を加算して行くその操作した数値が0なら処理を終了して合計値を表示する
サンプルプログラム
簡易電卓プログラム
P116
注意:0が入力されたら終了
22
P116
#include <stdio.h>
int main(void){int sum = 0;int dt = 1;
while (dt != 0) {scanf("%d", &dt);sum = sum + dt;
}
printf("合計=%d¥n", sum);
return 0;}
サンプルプログラム
実行結果
教科書に書いてあるプログラム
23
#include <stdio.h>
int main(void){int sum = 0;int dt = 1;
while (dt != 0) {scanf("%d", &dt);sum = sum + dt;
}
printf("合計=%d¥n", sum);
return 0;}
#include <stdio.h>
int main(void){int sum = 0;int dt;
for (dt = 1; dt != 0; ) {scanf("%d", &dt);sum = sum + dt;
}
printf("合計=%d¥n", sum);
return 0;}
P116 サンプルプログラム
for文を使っても書ける
24
#include <stdio.h>
int main(void){int sum = 0;int dt = 1;
while (dt != 0) {scanf("%d", &dt);sum = sum + dt;
}
printf("合計=%d¥n", sum);
return 0;}
#include <stdio.h>
int main(void){int sum = 0;int dt;
while (1) {scanf("%d", &dt);
if (dt == 0) {break;
}
sum = sum + dt;}
printf("合計=%d¥n", sum);
return 0;}
P116 サンプルプログラム
break文を使っても書ける
25
P116 サンプルプログラム
#include <stdio.h>
int main(void){int sum = 0;int dt = 1;
while (dt != 0) {scanf("%d", &dt);sum = sum + dt;
}
printf("合計=%d¥n", sum);
return 0;}
#include <stdio.h>
int main(void){int sum = 0;int dt;
for ( ; ; ) {scanf("%d", &dt);
if (dt == 0) {break;
}
sum = sum + dt;}
printf("合計=%d¥n", sum);
return 0;}
for文とbreak文を使っても
書ける