PowerPoint プレゼンテーション

AならBをやって、CならDをやって・・・、と
いう感じ。これが分かればゲーム作りも目じゃ
ない
第3章
条件分岐
1

何らかの数値などを格納する(入れる)変数
使うためには宣言(変数の種類、大きさの決定)が必要


プログラミングにおける計算の記号(演算子)の
扱いをやりました
scanf は文字を実行した後で入力させる関数
第3章
条件分岐
2

true と false という考え方

条件によって処理を分岐させる文
なんだかたいそうな名前をしてるけど、大したことないよ(多分)
第3章
条件分岐
3


まず条件ってのがあり、その内容を満たすと
true で、満たさないと false と呼ぶ(表す)
つまりはこういうこと
条件: 40ヤード走のタイム5.0秒未満
K君: 4.2秒
←
true
H君: 5.1秒
←
false
第3章
条件分岐
4


そして、true のことを「真」とも言うし、
「1」と表すこともある
また false のほうも「偽」と言ったり、「0」と
表すこともあるよ
条件と真偽を合わせて、命題というらしいがまた別の話
第3章
条件分岐
5

条件とその真偽( true か false か)で作業を分岐
させることができる

それが条件分岐ってやつ

今回は
if 文による条件分岐をやってみよう
第3章
条件分岐
6
if( num > 5){
printf(“Hello\n”);
}
 この()の中に条件を
else{
書き(条件式という)、
printf(“World\n”);
{}内でやってもらう }
作業を書く


if 文の書き方はこう
else とは条件を満たさなかったときの分岐のこ
と
第3章
条件分岐
7

条件式には特殊な記号を使わないといけない

『==』は等しい

『!=』は等しくない

を表す
他にも『>』はより大きい、『<』はより小さ
い、『>=』は大なりイコール、『<=』は小な
りイコールの意味
まだまだいくつかあるけど、今はこれだけ
第3章
条件分岐
8

とりあえず以下のプログラムを実行してみよう
#include <stdio.h>
void main(){
int num;
printf(“数値を入力してください > ”);
scanf(“%d”,&num);
if(num < 10){
printf(“numの値は10未満です\n”);
}
else{
printf(“numの値は10以上です\n”);
}
}
第3章
条件分岐
9

実行結果例がこんな感じ

実行して欲しい作業が1行で済むなら以下もOK
if(num < 10)
printf(“numの値は10未満です”);
else
printf(“numの値は10以上です”);
第3章
条件分岐
10

さらに、else if というものを使うと条件分岐を
いくつも設定できる!
if(num < 10){
printf(“numの値は10未満です\n”);
}
else if(num == 10){
printf(“numの値は10です\n”);
}
else{
printf(“numの値は10より大きいです\n”);
}
さっきのプログラムをこれに書き換えてみよう
第3章
条件分岐
11

今のを実行するとこうなる
第3章
条件分岐
12


次のような実行結果になるようにプログラムを
組んでみよう
絶対値は必ず正だから、差の計算に工夫が必要
第3章
条件分岐
13

変数 c を使っているのがポイント
#include <stdio.h>
void main(){
int a,b,c;
printf(“aの数値を入力してください > ”);
scanf(“%d”,&a);
printf(“bの数値を入力してください > ”);
scanf(“%d”,&b);
if(a > b)
c = a – b;
else
c = b – a;
printf(“aとbの差の絶対値は%dです\n”,c);
}
第3章
条件分岐
14

複数の分岐を設定したいなら
switch 文
というのも実に使える!

if 文ほど細かい条件は作れないけど、一度に多
くの分岐を作れるのが魅力(書くことも少なめ)
使い方は次頁に
第3章
条件分岐
15
switch( num ){
 このように、
case 0:
printf(“私はLです\n”);
()内の変数の
break;
値を case の横
case 1:
の条件で判定
printf(“僕がキラだ\n”);
して分岐する
break;
}

case の後は『;』ではなく『:』なので注意!

『break;』も必須なのでよろしく
第3章
条件分岐
16

ためしに以下のプログラムを実行してみよう
#include <stdio.h>
void main(){
int num;
printf(“numの数値を入力してください > ”);
scanf(“%d”,&num);
switch(num / 100){
case 0: printf(“numは100未満です\n”);
break;
case 1: printf(“numは100以上200未満です\n”);
break;
default: printf(“numは200以上か負の数ですね\n”);
break;
}
}
なんか知らない文字もあるけど、気にしないで・・・
第3章
条件分岐
17



switch の()内に多少の計算が入っても大丈夫
『default:』は if 文でいう else に相当するも
のらしい
ところで、『num』は number の略です
第3章
条件分岐
18
以下の実行結果と同じ感じになるようにプログ
ラムを組んでみよう(switch 文を使ってね)
 想定されていない数値が入力された時、それを
はじく記述を加えるのがミソ

第3章
条件分岐
19
記述が多かったので、
#include <stdio.h>
改行すべきところでし
void main(){
int a,b,c;
てなかったり、かなり
printf(“aの数値を入力してください”); 書き方が汚いです。
scanf(“%d”,&a);
くれぐれも自分で書く
printf(“bの数値を入力してください”);
ときは見易く
scanf(“%d”,&b);
printf(“計算方法を決めてください\n”);
printf(“1:足し算 2:引き算 3:掛け算 4:割り算 > ”);
scanf(“%d”,&c)
switch(c){
case 1: printf(“%d + %d = %d\n”,a,b,a+b); break;
case 2: printf(“%d - %d = %d\n”,a,b,a-b); break;
case 3: printf((“%d × %d = %d\n”,a,b,a*b); break;
case 4: printf((“%d ÷ %d = %d 余り %d\n”,a,b,a/b,a%b); break;
default : printf(“想定されていない数値です\n”);
printf(“プログラムを終了します\n”); break;
} }
第3章
条件分岐
20

if 文の中に if 文を書くことで、分岐をさらに細
かくできる
if(num1 >= 10){
if(num2 >= 200){
printf(“num1が10以上でnum2は200以上”);
}
else{
printf(“num1が10以上でnum2は200より小”);
}
}
{}の数に注意しよう
第3章
条件分岐
21


if 文の条件式に &&、|| 、! を使うことで、条
件の組み合わせをすることができるよ
&& は「AかつB」、|| は「AまたはB」の意味
if(num1>=10 && num2>=200){
printf(“num1は10以上で、num2は200以上\n”);
}
if(num1>=10 || num2>= 10){
printf(“num1かnum2どちらかが10以上\n”);
}
第3章
条件分岐
22

! は「Aでない」を表すよ
if( !(num == 10) ){
printf(“numは10ではないよ\n”);
}


上では(num == 10)ではないよ、という意味。
ただ『 !num 』だけなら『 num == 0 』の意
味になる(最初はわかりづらいかもね)
また、『 if(num)』は『 if(num != 0)』の意味
になる
第3章
条件分岐
23

作業を決まった回数繰り返させるための文
繰り返しの while 文の登場
うまくいけば for 文も説明できるかも・・・(次回以降に
回す可能性大)
できる限り早めにスライド作ります・・・(遅くてすまぬ)
第3章
条件分岐
24

テンプレ
第3章
条件分岐
25