演習&ワーク
講義順です。
■演習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(&&)を使って、isSunnyがtrue かつ isFineがtrueの場合に処理が実行されるよう、★内を記述しましょう。
if (★) { // isSunnyがtrue & isFineがtrue
System.out.println(“走りに行く”);
}
■ワーク-llを使ったif文
OR(||)を使って、isRainingがtrue もしくは isColdがtrue の場合に処理が実行されるよう、★内を記述しましょう。
if (★) {//isRainingがtrue or isColdがtrue
System.out.println("寝る");
}
■演習5-AND/OR条件を使った分岐
mainメソッドにて以下の処理を行うIfp05クラスを作成してください。
・プレイヤーとボスそれぞれの体力を表す変数playerHpとbossHpを、任意の整数で初期化する。
・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("追いつかれた!モンスターからの攻撃!");
}
}
}