2日目②(2025.02.01)<if/else/else if ②>



さて、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日目は終わってません、、、


続きは次の記事にします!!


ではでは!!


コメントを残す