さて、if / else / else ifの概要、簡単なコーディングは大体わかった!!
次にTim先生がおっしゃったのは、
「 ifとifを組み合わせよう!!」
ということ。
やることは何となく想像できるけど、コードは全く想像できない!!
ということで、Tim先生、よろしくお願いします!!
【 if文の中にif文を追加する】
(例)ユーザーに年齢を入力するよう求め、その年齢に基づいて、返す値を変える
なるほど、年齢制限的なやつね!!
早速、Tim先生のコーディングを真似しよう。
System.out.println(“Input your age: “);
ん?
いきなり出力のやつ書くの??
まあ、やってりゃ理由が分かるか。
(実際、なんで最初に書いたのか後で分かりました)
System.out.println(“Input your age: “);
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int age = Integer.parseInt(s);
if(age >= 13);{
System.out.println( “You can ride!”);
}
else{
System.out.println( “You cannnot ride!”);
}
⇓
(コンソール画面)
Input your age: (実行ボタンを押したら勝手に出た!!)
⇓
Input your age: 36 (キーボードから”36″と入力)
You can ride!
この勉強をしている時は、ScannerとInteger.parseIntに対して、
かなり苦手意識があったので、「うわ、、、また出た」と思っていた記憶があります。
(今も少し苦手意識が、、、)
それは置いといて、ジェットコースターとかアトラクションを想定した例文でした!!
分かりやすい!!
無事に機能すると、なんか嬉しくて何回も試してしまいました。
Tim先生の説明と実際に真似してコーディングすることで、
★最初にSystem.out.println(“Input your age: “)
と入力したのは、実行した瞬間にコンソール画面に表示させるためだったんですね!!
age:の後ろにスペースを入れた理由も、実際に実行したら分かりました!!
★スキャナーオブジェクトを設置した後に、sc.nextLineでユーザーが入力した文字列をスキャン。
スキャンした文字列 s を整数に変換してInt ageを作るために、Integer.purseIntを使う。
うんうん、我ながら理解できてるんと違うかな。
と思ってましたが、この記事を書いている2月11日にふと思いました。
Integer.purseInt いる??
いや、例文の場合はいるんやけど、そもそも文字列にするんじゃなくて、最初からint型にしたらいいんちゃうん、、、
初心者には分からない理由(高いレベルになった時に使えるように)かもしれないし、僕みたいにすぐに忘れてしまう人のために、あえて使ってくれたのかもしれないし、、、
とにかく、復習も兼ねて(2月11日に)コードを書いてみました。
System.out.print(” Input your age: “);
Scanner sc = new Scanner(System.in);
int age = sc.nextInt();
if(age >= 13) {
System.out.println(“You can ride!”);
}
else {
System.out.println(“You cannot ride!”);
}
⇓
ちゃんと出た!!
何か落とし穴にはまっているのか、どうなのか、現段階では分かりませんが、少し嬉しいです!!
さて、次はさらに条件を増やした形を紹介いただきました!!
何歳ですか??
↓
if①
18歳以上 → Noの場合、「13歳以上なら○○と表示、それ以外なら△△と表示」
↓
Yesの場合
if②
好きな食べ物はピザですか? → Noの場合、「私は違います」
↓
Yesの場合
「私も同じです」
といった内容をコーディング!!
この2日目に勉強している時は、とにかく何も考えずにTim先生に付いていっていましたが、今は違います!!
2月11日のオレの成長を証明しよう!!
System.out.print(" 何歳ですか? ");
Scanner sc = new Scanner(System.in);
String s = sc.next();
int age = Integer.parseInt(s);
String food = sc.nextLine();
if(age >= 18) {
System.out.println("好きな食べ物は? ");
}
else if(age < 18){
System.out.println("ビーフケークハマー");
}
else if(food.equals("ピザ")){
System.out.println("私もです!!");
}
else{
System.out.println("マッスルインフェルノ");
}
}
}
実行!!
はい、だめでした。
結構自信をもってやったのですが、、、
全然狙い通りの実行結果が得られませんでした、、、
そこから格闘すること約20分…
解決しないので、ノートを2秒だけ見ることに。
なるほど!!
「ifの中にifを入れる」のか!!
記事のサブタイトルにも入れているのに、ここに気付かなかったなんて、、、
というわけで、やり直し!!
System.out.println(” 何歳ですか? “);
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int age = Integer.parseInt(s);
if(age >= 18) {
System.out.println("好きな食べ物は? ");
String food = sc.nextLine();
if(food.equals("ピザ")) {
System.out.println("私もです");
}
else{
System.out.println("マッスルインフェルノ");
}
}
else if(age < 18) {
System.out.println("ビーフケークハマー");
}
}
}
これでなんとか、思い通りの結果を得ることができました!!
時間が経ってから、もう一度このコードを見て、ツッコミどころがないか確認しよう!!
というわけで、if / else / else if 編は終わりです!!
でもまだ2日目は終わってません、、、
続きは次の記事にします!!
ではでは!!