広告
↓発売日:2018年09月22日↓
新品価格 |
プログラムの基本は
(1)上から順番に
(2)条件で分かれ道
(3)繰り返し
でしたね!
今回から(2)条件で分かれ道をやっていきます!
いろいろな条件でプログラムを分かれ道させてみましょう!
プログラミングがどんどん楽しくなる時ですね!
/*七日目 プログラム1*/ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(){ int kotae = 0; printf("問題です!\n世界一高い山は?\n\n"); printf("1・エベレスト 2・富士山\n\n"); printf("数字でお答えください!>"); (void)scanf("%d",&kotae); if(kotae == 1)printf("正解です!\n"); else printf("ぶっぶー!不正解です!\n"); return 0; }
最初に答えを入れるための変数
int kotae = 0;
を用意します。そして「scanf」命令で答えを受け取ります。
(void)scanf("%d",&kotae);
「&kotae」ここに答えの「1」か「2」が保存された所で「if」命令の出番ですね!
if(kotae == 1)printf("正解です!\n"); else printf("ぶっぶー!不正解です!\n");
この「if」命令のそれぞれの条件を見ていきましょう!
if(kotae == 1)printf("正解です!\n");
「if(条件)printf("正解です!");」この最初の「条件」が合っていれば続けて書いた「printf("正解です!");」が実行されます。「==」の説明は後ほどします!
else printf("ぶっぶー!不正解です!\n");
このelse(エルス)に続くプログラムはそうではない時に実行されます!最初の条件があわない時に必ず実行されます!
2つに分かれる場合はこのように「if」と「else」でそれぞれ分かれ道させます!
ちなみにこの「if」命令を
if(kotae == 1)printf("正解です!\n");
でその後の「else」を書かない場合は、「条件が合う場合」だけ実行されて、その他は「何もしない」プログラムになります!
if(kotae == 1);
あとはこの気になる「==」ですね!まあ・・・。そのまま覚えてください。「kotae == 1」は「kotae」と「1」は同じか?という意味になります!これを「条件式(じょうけんしき)」といいます!
しつこく言いますが「==」イコールは2つです。ここを間違えて「=」イコール1つにしてしまうと意味がぜんぜん違うけれど文法は合ってるのでプログラムがワケわからない方向に突き進むので注意しましょう!
さきほどの「==」の他にもいろいろな条件式があります。
仮にあなたを「you」として、年令を聞かれていると考えてください。
どこからどこまでが、含まれる(ふくまれる)、含まれない(ふくまれない)を意識しながら他の条件式も見てみましょう!
あなたが20才ちょうどだったら。
あなたが20才ではなかったら。
この場合はそれ以外の年令が全てあてはまります。
あなたが20才未満だったら。
この場合は19才から、その下の年令全てあてはまります。マイナスもあてはまります。20才は含まれません!
さきほどの逆ですね!21才から、その上の年令全てです。同じく20才は含まれません!
あなたが20才以下だったら。
20才が含まれるバージョンです。
あなたが20才以上だったら。
逆バージョンですね!
含まれる、含まれないが大事です。あと「<」と「=」の順番を逆に「=<」したりするミスが多いので気をつけましょう!
広告
ではいろいろな条件式を使って条件を増やしてみましょう!
テストの点数をランク分けするプログラムです!
80点~100点・・・Aランク
30点~79点・・・Bランク
0点~29点・・・Cランク
この条件でランク分けをしてみます!
/*七日目 プログラム2*/ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(){ int test = 0; printf("テスト結果を点数でランク分けします!\n"); printf("A(100点~80点):B(79点~30点):C(29点~0点)\n\n"); printf("テストの点数を入力してください>"); (void)scanf("%d",&test); if(test >= 80)printf("\n\n結果%d点 Aランクです!\n",test); else if(test >= 30)printf("\n\n結果%d点 Bランクです!\n",test); else printf("\n\n結果%d点 Cランクです!\n",test); return 0; }
「else if」を続ける事によって、「そうではなく、もし~だったら・・・。」と続ける事ができます。
if(条件)続きの命令 else if(条件)続きの命令 else if(条件)続きの命令 else 続きの命令
このようにさらに条件を加える事もできます!
if(test > 79)printf("\n\n結果%d点 Aランクです!",test); else if(test > 29)printf("\n\n結果%d点 Bランクです!",test); else printf("\n\n結果%d点 Cランクです!"),test);
さきほどのプログラムで「=」を抜いた場合です。
含まれる、含まれないが大事です!
if(test > 79)printf("\n\n結果%d点 Aランクです!",test); if(test > 29)printf("\n\n結果%d点 Bランクです!",test); else printf("\n\n結果%d点 Cランクです!"),test);
「else if」の「else」を抜いてみました。
この場合は「そうではなく」の意味がなくなるのでたとえば点数が90点だとしたら
結果90点 Aランクです!
結果90点 Bランクです!
というように両方の条件が反応してしまうので注意が必要です!
今までは条件の後に一つの命令だけしか使えませんでしたね!{}カッコを使うと命令を増やす事ができます。
/*七日目 プログラム3*/ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(){ int kotae = 0; printf("問題です!\n世界一高い山は?\n\n"); printf("1・エベレスト 2・富士山\n\n"); printf("数字でお答えください!>"); (void)scanf("%d",&kotae); if(kotae == 1){ printf("正解です!\n"); printf("もの知りはかせですね!!!\n"); } else{ printf("ぶっぶー!不正解です!\n"); printf("もっと勉強しましょう!\n"); } return 0; }
一言加えました!{}カッコをつける事でさらに命令を増やす事ができます!
{}カッコを加えた時にわかりやすいようにと、さらにスペースを空けて命令の先頭をずらしている所に注意です!
if(kotae == 1){printf("正解です!\n");printf("もの知りはかせですね!!!\n");}
さきほどのプログラムをこのように書く事もできますが、見にくい上にエラーの原因にもなるので、プログラムはキレイに書きましょう!
次回は「if」の仕組みについて見ていきます!
広告
↓発売日:2016年02月29日↓
12歳からはじめる ゼロからのC言語 ゲームプログラミング教室 新品価格 |
↓発売日:2018年06月22日↓
新品価格 |
↓発売日:2018年03月09日↓
新品価格 |
↓発売日:2017年06月14日↓
新品価格 |
↓発売日:2018年05月21日↓
新品価格 |
↓発売日:2017年12月07日↓
新品価格 |
↓発売日:2017年02月08日↓
新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ) 新品価格 |
↓発売日:2017年09月26日↓
新品価格 |