じゃないJava-04if

演習&ワーク

講義順です。

■演習1-IF文の基本

mainメソッドにて以下の処理を行うIfp01 クラスを作ってください。

・変数numに任意の整数を代入
・numの値が5の場合にだけ、「ご!!」と画面出力

■回答例

public class Ifp01 {
    public static void main(String[] args) {
        int num = 5; // ここで任意の整数を代入
        if (num == 5) {
            System.out.println("ご!!");
        }
    }
}

■演習2-else文

演習1で作成したIfp01クラスのmainメソッドについて
・5でない場合「ごではない」と画面出力するよう、else文を追記してください。

■演習2回答例

package lesson04if;

public class Ifp01 {

	public static void main(String[] args) {
		int num = 5;
		if (num == 5) {
			System.out.println("ご!!");
		}else {
			System.out.println("ごではない");
		}
	}
}

(追記部分のみ抜粋)

                else {
			System.out.println("ごではない");
		}

■演習3-比較演算子

mainメソッドにて以下の処理を行うIfp03クラスを作成してください。


・入力値を受け付け、int型の変数intInputに代入する
・入力値が3よりも大きい場合、「3より大きいです!」と画面出力する

■演習3回答例

package lesson04if;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Ifp03 {

	public static void main(String[] args) throws IOException {
		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
		String input = reader.readLine();
		int intInput = Integer.parseInt(input);

		if (intInput > 3) {
			System.out.println("入力値は3よりも大きいです!");
		}

	}

}

入力値をint型に変換し代入する処理は、1行でも記述できます。
(この後動画で解説します)

        // 入力された値をint型に変換してintInputに代入
        int intInput = Integer.parseInt(reader.readLine());

■ワーク1-2択の恋愛シミュレーションを作る

ここまでに伝えた内容で、冒頭の恋愛シュミュレーションが作れます。

以下の出力結果となるようなIf03クラスを作成してください

(1を入力した場合)

(2を入力した場合)

■ワーク1解答例

package lesson04if;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class If03 {

	public static void main(String[] args) throws IOException {
		System.out.println("前に歩いている女の子がハンカチを落としたようだ");
		System.out.println("1:拾う");
		System.out.println("2:拾わない");
		
		BufferedReader reader = 
				new BufferedReader(new InputStreamReader(System.in));
		System.out.println("選択肢の番号を入力してください");
		String input = reader.readLine();
		int choice = Integer.parseInt(input);
		
		
		if (choice == 1) {
			//1を選んだ場合の処理
			System.out.println("「ハンカチ落としたよ」");
		}else {
			//2を選んだ場合の処理
			System.out.println("女の子は去って行った。ハンカチはむなしく廊下に取り残された。");
		}
		
		

	}

}

■演習4-3つ以上の分岐

mainメソッドにて以下の処理を行うIfp04クラスを作成してください。


・int型の変数drinkPriceに、任意の整数を代入する
*コンソールから入力値を受け付けるのではなく、初期化で指定した値で分岐を行います
例:int drinkPrice= 100;//この値で分岐

drinkPriceの値の大きさによって、以下の通り条件分岐し、メッセージの画面出力を行う。


160以上:「缶ジュースとペットボトルのランプを点灯します」
130以上:「缶ジュースのランプを点灯します」
以外:「お金が足りません」

ヒント:IF文の条件は、上記の順番で書きましょう。(理由はこの章の後半でお伝えします)

追記:
変数名drinkPriceは、「投入された金額」のことです。
moneyの方がわかりやすいのですが・・解説動画に合わせてdrinkPriceのままとさせてください🙇
変数名のせいで混乱された方は、「変数名がわかりにくいと困惑の元となる」ことを実体験いただいた形です。ごめんなさい。

■演習4解答例

package lesson04if;

public class Ifp04 {

	public static void main(String[] args) {
		// int型の変数drinkPriceに任意の整数を代入
		int drinkPrice= 150; // この数値は任意に変更可能です
		// drinkPriceの値によって条件分岐し、メッセージを出力
		if (drinkPrice>= 160) {
			System.out.println("缶ジュースとペットボトルのランプを点灯します");
		} else if (drinkPrice>= 130) {
			System.out.println("缶ジュースのランプを点灯します");
		} else {
			System.out.println("お金が足りません");
		}
	}
}

■ワーク-And条件を使ったIF文

And(&&)を使って、isSunnytrue かつ isFinetrueの場合に処理が実行されるよう、★内を記述しましょう。

if (★) { // isSunnyがtrue & isFineがtrue
System.out.println(“走りに行く”);
}

■ワーク-llを使ったif文

OR(||)を使って、isRainingtrue もしくは isColdtrue の場合に処理が実行されるよう、★内を記述しましょう。

	if (★) {//isRainingがtrue or isColdがtrue 
			System.out.println("寝る");
		}

■演習5-AND/OR条件を使った分岐

mainメソッドにて以下の処理を行うIfp05クラスを作成してください。


・プレイヤーとボスそれぞれの体力を表す変数playerHpbossHpを、任意の整数で初期化する。
playerHpが0より大きい かつ bossHpが0より大きい 場合のみ、「どうする? 1:闘う 2:逃げる」と画面出力

■演習5回答例

package lesson04if;

public class Ifp05 {
    public static void main(String[] args) {
        // プレイヤーとボスの体力を任意の整数で初期化
        int playerHp = 100; // 例: プレイヤーの体力を100で初期化
        int bossHp = 200;   // 例: ボスの体力を200で初期化

        // プレイヤーとボスの体力が0より大きい場合、行動選択を出力
        if (playerHp > 0 && bossHp > 0) {
            System.out.println("どうする? 1:闘う 2:逃げる");
        }
    }
}

■演習6-文字列の値による分岐

Ifp06クラスのmainメソッドにて、
String型の変数personに入力値を代入し、、personの値によって処理を分岐する処理を作ってください。


personの中身

「じゃぱ」の場合:

→「ちわっす!!」と画面出力

以外の場合:
→「おはようございます。」と画面出力

ヒント:
String型の比較には==ではなく、変数名.equals()を使います。()の中に、比較対象の文字を入れます。

■演習6回答例

package lesson04if;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Ifp06 {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        System.out.print("名前を入力してください: ");
        String person = reader.readLine();

        if (person.equals("じゃぱ")) {
            System.out.println("ちわっす!!");
        } else {
            System.out.println("おはようございます。");
        }
    }
}

■演習7-Switch文

Ifp07クラスのmainメソッドにて、
String型の変数personに入力値を代入し、、personの値によって処理を分岐する処理を作ってください。
分岐には、IF文では無くSwitch文を使うこと。


personの中身

「じゃぱ」の場合:

→「ちわっす!!」と画面出力

以外の場合:
→「おはようございます。」と画面出力

ヒント:
・Switch文は、文字列も比較できます。
・文字列は””で囲います。

■演習7回答例

package lesson04if;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Ifp07 {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("名前を入力してください:");
String person = reader.readLine();

switch (person) {
case "じゃぱ":
System.out.println("ちわっす!!");
break;
default:
System.out.println("おはようございます。");
break;
}
}
}

問題集

1.mainメソッドにて以下の処理を実行するIfd01クラスを作成してください。Switch文ではなく、IF文を使うこと。

・「選択肢を選んでください1:走って追いかける 2:電話する 3:あきらめる」と画面出力し、入力を受けつける
・選んだ選択肢によって、処理を分岐させる
1の場合:
「追いつかなかった。Game Over」と画面出力
2の場合:
「電話がつながった! (続く)」と画面出力
3の場合:
「諦めた。Game Over」と画面出力

ヒント:入力値は、文字列です。
文字列が等しいか評価するにはequalsメソッドを使います。
あるいは、数値変換すれば、==で等しいか評価が可能です。

2.mainメソッドにて以下の処理を実行するIfd02クラスを作成してください。

・体力を表す変数hpと素早さを表す変数speedを宣言し、任意の整数で初期化する。
・以下の通り、分岐を行う

hpが5より上、かつspeedが20以上の場合:
「無事、逃げられた!」と画面出力
以外の場合:
「追いつかれた!モンスターからの攻撃!」と画面出力

ヒント:かつは&& で表します。

問題集回答例

1.mainメソッドにて以下の処理を実行するIfd01クラスを作成してください。Switch文ではなく、IF文を使うこと。

・「選択肢を選んでください1:走って追いかける 2:電話する 3:あきらめる」と画面出力し、入力を受けつける
・選んだ選択肢によって、処理を分岐させる
1の場合:
「追いつかなかった。Game Over」と画面出力
2の場合:
「電話がつながった! (続く)」と画面出力
3の場合:
「諦めた。Game Over」と画面出力

ヒント:入力値は、文字列です。
文字列が等しいか評価するにはequalsメソッドを使います。
あるいは、数値変換すれば、==で等しいか評価が可能です。

package lesson04if;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Ifd01 {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        // ユーザーに選択肢を提示し、入力を受け付ける
        System.out.println("選択肢を選んでください 1:走って追いかける 2:電話する 3:あきらめる");
        String choice = reader.readLine();

        // IF文を使用して選択肢に応じた処理を行う
        if ("1".equals(choice)) {
            System.out.println("追いつかなかった。Game Over");
        } else if ("2".equals(choice)) {
            System.out.println("電話がつながった! (続く)");
        } else if ("3".equals(choice)) {
            System.out.println("諦めた。Game Over");
        } 
    }
}


(参考)分岐部分をSwitch文で書いた場合

        switch (choice) {
            case "1":
                System.out.println("追いつかなかった。Game Over");
                break;
            case "2":
                System.out.println("電話がつながった! (続く)");
                break;
            case "3":
                System.out.println("諦めた。Game Over");
                break;
        }


2.mainメソッドにて以下の処理を実行するIfd02クラスを作成してください。
・体力を表す変数hpと素早さを表す変数speedを宣言し、任意の整数で初期化する。
・以下の通り、分岐を行う

hpが5より上、かつspeedが20以上の場合:
「無事、逃げられた!」と画面出力
以外の場合:
「追いつかれた!モンスターからの攻撃!」と画面出力

ヒント:かつは&& で表します。

package lesson04if;

public class Ifd02 {
    public static void main(String[] args) {
        // 変数の宣言と初期化
        int hp = 10;    // 体力を任意の値で初期化
        int speed = 25; // 素早さを任意の値で初期化

        // 条件による分岐
        if (hp > 5 && speed >= 20) {
            System.out.println("無事、逃げられた!");
        } else {
            System.out.println("追いつかれた!モンスターからの攻撃!");
        }
    }
}

タイトルとURLをコピーしました