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
© Copyright 2025 ExpyDoc