広告
↓発売日:2017年04月04日↓
Java 第2版 入門編 ゼロからはじめるプログラミング (プログラミング学習シリーズ) 新品価格 |
プログラムの基本は
(1)上から順番に
(2)条件で分かれ道
(3)繰り返し
でしたね!
今回から(2)条件で分かれ道をやっていきます!
いろいろな条件でプログラムを分かれ道させてみましょう!
プログラミングがどんどん楽しくなる時ですね!
/*七日目 プログラム1*/ import java.util.*; class Test{ public static void main(String args[]){ Scanner sc = new Scanner(System.in); int kotae = 0; System.out.print("問題です!\n世界一高い山は?\n\n"); System.out.print("1・エベレスト 2・富士山\n\n"); System.out.print("数字でお答えください! > "); kotae = sc.nextInt(); if(kotae == 1)System.out.print("正解です!\n"); else System.out.print("ぶっぶー!不正解です!\n"); } }
答えを入れるための変数
int kotae = 0;
を用意します。
そして前回同様「sc.nextInt()」命令で答えの1か2を受け取ったらいよいよ「if」命令の出番です!
if(kotae == 1)System.out.print("正解です!\n"); else System.out.print("ぶっぶー!不正解です!\n");
この「if」命令のそれぞれの条件を見ていきましょう!
if(kotae == 1)System.out.print("正解です!\n");
「if(条件)System.out.print("正解です!\n");」この最初の「条件」が合っていれば続けて書いた「System.out.print("正解です!\n");」が実行されます。「==」の説明は後ほどします。
else System.out.print("ぶっぶー!不正解です!\n");
このelse(エルス)に続くプログラムはそうではない時に実行されます!最初の条件があわない時に必ず実行されます!
2つに分かれる場合はこのように「if」と「else」でそれぞれ分かれ道させます!
ちなみにこの「if」命令を
if(kotae == 1)System.out.print("正解です!\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*/ import java.util.*; class Test{ public static void main(String args[]){ Scanner sc = new Scanner(System.in); int test = 0; System.out.print("テスト結果を点数でランク分けします!\n"); System.out.print("A(100点~80点):B(79点~30点):C(29点~0点)\n\n"); System.out.print("テストの点数を入力してください > "); test = sc.nextInt(); if(test >= 80)System.out.print("\n\n結果" + test + "点 Aランクです!\n"); else if(test >= 30)System.out.print("\n\n結果" + test + "点 Bランクです!\n"); else System.out.print("\n\n結果" + test + "点 Cランクです!\n"); } }
「else if」を続ける事によって、「そうではなく、もし~だったら・・・。」と続ける事ができます。
if(条件)続きの命令 else if(条件)続きの命令 else if(条件)続きの命令 else 続きの命令
このようにさらに条件を加える事もできます!
if(test > 79)System.out.print("\n\n結果" + test + "点 Aランクです!\n"); else if(test > 29)System.out.print("\n\n結果" + test + "点 Bランクです!\n"); else System.out.print("\n\n結果" + test + "点 Cランクです!\n");
さきほどのプログラムで「=」を抜いた場合です。
含まれる、含まれないが大事です!
if(test > 79)System.out.print("\n\n結果" + test + "点 Aランクです!\n"); if(test > 29)System.out.print("\n\n結果" + test + "点 Bランクです!\n"); else System.out.print("\n\n結果" + test + "点 Cランクです!\n");
「else if」の「else」を抜いてみました。
この場合は「そうではなく」の意味がなくなるのでたとえば点数が90点だとしたら
結果90点 Aランクです!
結果90点 Bランクです!
というように両方の条件が反応してしまうので注意が必要です!
今までは条件の後に一つの命令だけしか使えませんでしたね!{}カッコを使うと命令を増やす事ができます。
/*七日目 プログラム3*/ import java.util.*; class Test{ public static void main(String args[]){ Scanner sc = new Scanner(System.in); int kotae = 0; System.out.print("問題です!\n世界一高い山は?\n\n"); System.out.print("1・エベレスト 2・富士山\n\n"); System.out.print("数字でお答えください! > "); kotae = sc.nextInt(); if(kotae == 1){ System.out.print("正解です!\n"); System.out.print("もの知りはかせですね!!!\n"); } else{ System.out.print("ぶっぶー!不正解です!\n"); System.out.print("もっと勉強しましょう!\n"); } } }
一言加えました!{}カッコをつける事でさらに命令を増やす事ができます!
{}カッコを加えた時にわかりやすいようにと、さらにスペースを空けて命令の先頭をずらしている所に注意です!
次回は「if」の仕組みについて見ていきます!
広告
↓発売日:2017年04月18日↓
Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで 新品価格 |
↓発売日:2016年06月25日↓
新品価格 |
↓発売日:2016年08月31日↓
新品価格 |
↓発売日:2018年11月21日↓
新品価格 |
↓発売日:2016年12月15日↓
新品価格 |
↓発売日:2016年09月28日↓
新品価格 |