演習&ワーク
講義順です。
■演習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("追いつかれた!モンスターからの攻撃!"); } } }