前提・実現したいこと
キーボードから1が入力されたらスピードが1上がるspeedUpメソッドを呼び出ししたいです。
また
キーボードから2が入力されたらスピードが1下がるspeedDownメソッドを呼び出ししたいです。
そしてキーボードから3の入力で終了するようにしたいです。
発生している問題・エラーメッセージに内容は書いたのですが、どのようにすれば上記のように動作するのか教えてほしいです。
発生している問題・エラーメッセージ
3が入力されるまで何度も聞かれるようにするにはどうすれば良いですか? 今の状態だと一度1~3の数字を押すとspeedShow()が一度起動後終了してしまいます。 すいません............ 修正点:クラスをCarとTestのみへ変更。
java
1import java.util.Scanner; 2public class Test{ 3 4 public static void main(String[] args) { 5 6 Car no01=new Car(); 7 8 System.out.println("スピードを上げるなら[1]、" 9 + "下げるなら[2]を入力([3]は終了)"); 10 11 Scanner sc=new Scanner(System.in); 12 int n=sc.nextInt(); 13 14 if(n==1) { 15 //スピードup 16 no01.speedUp(); 17 no01.speedShow(); 18 19 } 20 if(n==2) { 21 //スピードDown 22 no01.speedDown(); 23 no01.speedShow(); 24 25 } 26 if(n==3) { 27 //終了 28 System.out.println("終了します"); 29 } 30 sc.close(); 31} 32}
java
1public class Car { 2 final static int LIMIT=50; 3 4 private int speed; 5 6 Car(){ 7 this.speed=0; 8 } 9 10 void speedDown() { 11 if(this.speed>0) { 12 this.speed--; 13 } 14 } 15 16 void speedUp() { 17 if(this.speed<80) { 18 this.speed++; 19 } 20 } 21 22 void speedShow() { 23 if(LIMIT>this.speed) { 24 System.out.println("制限速度"+LIMIT+"km/h"); 25 System.out.println("現在速度"+this.speed+"km/h"); 26 System.out.println("制限速度内です(あと"+(LIMIT-this.speed)+"km/hです)"); 27 } 28 if(LIMIT==this.speed) { 29 System.out.println("制限速度"+LIMIT+"km/h"); 30 System.out.println("現在速度"+this.speed+"km/h"); 31 System.out.println("制限速度限界"); 32 } 33 if(LIMIT<this.speed) { 34 System.out.println("制限速度"+LIMIT+"km/h"); 35 System.out.println("現在速度"+this.speed+"km/h"); 36 System.out.println("制限速度を"+(this.speed-LIMIT)+"km/hオーバーしています"); 37} 38} 39}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/03 05:26
2019/11/03 07:09