This commit is contained in:
m-mun
2026-09-09 08:34:32 +09:00
parent 8e67b4ccb9
commit 1b863df929
181 changed files with 34869 additions and 0 deletions

View File

@@ -0,0 +1,95 @@
import java.util.ArrayList;
import java.util.List;
/*
* PTra22_02.java
* 作成 Rhizome
*------------------------------------------------------------
* Copyright(c) Rhizome Inc. All Rights Reserved.
*/
public class PTra22_02 {
public static void main(String[] args) {
// ※この問題はPTra10_05で作成したCarクラスを使用して解いてください。
// 目的地までの距離
final int DISTANCE = 300;
// 1台目
Car car1 = new Car();
Driver driver1 = new Driver("田中太郎", 123456789101L, 28, "東京都中央区日本橋1-2-3");
car1.color = "赤";
car1.gasoline = 50;
car1.driverInfo = driver1;
// 2台目
Car car2 = new Car();
Driver driver2 = new Driver("佐藤二朗", 109876543210L, 45, "東京都豊島区北池袋1-2-3");
car2.color = "黄";
car2.gasoline = 60;
car2.driverInfo = driver2;
// 3台目
Car car3 = new Car();
Driver driver3 = new Driver("鈴木三郎", 101010101010L, 39, "埼玉県さいたま市大宮区錦町1-2-3");
car3.color = "青";
car3.gasoline = 70;
car3.driverInfo = driver3;
// Car型リストに作成したインスンタンスを格納する
List<Car> carList = new ArrayList<>();
carList.add(car1);
carList.add(car2);
carList.add(car3);
// 配列の要素数分繰り返しを行う
for (Car car : carList) {
/*
* TODO 以下の処理を作成してください
* 変数にcar.run()を代入してください 変数にDriver.displayInfo()を代入してください
*
*/
System.out.println("運転手の情報です。");
/*
* TODO 変数に代入した関数displayInfo()を実行してください。
*
*/
/*
* 進んだ距離の合計move と runメソッドを実行した回数のcountは繰り返しスコープの外で初期化
* このタイミングで初期化をおこなうことで、車ごとの進んだ距離と実行回数にすることができる
*/
int move = 0;
int count = 0;
while (true) {
/*
* carListのi番目のrunメソッドを実行する。 iの数が0,1,2と増えていくので、繰り返すごとに別のインスタンスのrunメソッドが実行される
*/
/*
* TODO 変数に代入した関数run()を実行してください。
*
*/
// 戻り値が -1 の時はガソリンがなくなった時なので繰り返し終了
if (ret == -1) {
System.out.println("目的地に到達できませんでした");
break;
}
// 進んだ距離の合計moveにrunメソッドの戻り値を加算
move += ret;
// runメソッドを実行した回数countをインクリメント
count++;
// 進んだ距離の合計が、目的地を超えた場合は目的についたので繰り返し終了
if (DISTANCE <= move) {
System.out.println("目的地にまで" + count + "時間かかりました。残りのガソリンは、" + car.gasoline + "リットルです" + "\n");
break;
}
}
}
}
}