switch文の中でのステータス表示を繰り返したい
現在、javaでキャラクター育成ゲームの作成を行っています。コンパイルして
- ミルクを与える
- 寝る
- あやす
という選択肢を入力して、switchでその選択肢ごとにポイントが加算されるよう分岐させています。
それぞれ選択No.を入力した段階で、その度にポイント加算されたステータスが表示されるようにしたいのですが(getYutoStatus()関数が表示)、現在は
$ java part01
Yuto君、こんにちは!!
Yuto君は今0才です
頑張って育てよう
1. ミルクを与える
2. 寝る
3. あやす
2
1. ミルクを与える
2. 寝る
3. あやす
3
1. ミルクを与える
2. 寝る
3. あやす
4
Yuto君は育成ポイント17でマイナスポイント0
Yuto君は育成ポイント17でマイナスポイント0
のようにそのまま次の選択の処理に入ってしまい、結果は最期に表示されています。
その都度「入力+結果表示」にする様にできる記述の方法を教えて欲しいです。
よろしくお願いします。
public class part01{
static String name = "Yuto"; //キャラクターの名前
static int age; //キャラクターの年齢
static int good = 5; //キャラクターの育成ポイント
static int wagamama = 0; //キャラクターのマイナスポイント
public static void main (String[] args) throws java.io.IOException{
putOpening();
putCommand();
putStageClear();
}
public static void putCommand() throws java.io.IOException{
put("1. ミルクを与える");
put("2. 寝る");
put("3. あやす");
switch(inputCommand()){
case '1':{
good += 2;
putCommand();
getYutoStatus();
break;
}
case '2':{
good += 5;
putCommand();
getYutoStatus();
break;
}
case '3':{
good += 7;
putCommand();
getYutoStatus();
break;
}
}
}
/**
* オープニングを表示
*/
public static void putOpening(){
System.out.println(name + "君、こんにちは!!");
System.out.println(name + "君は今" + age + "才です");
System.out.println("頑張って育てよう");
}
public static void getYutoStatus(){
put(name + "君は" + "育成ポイント" + good + "で" + "マイナスポイント" + wagamama);
}
/**
* ステージクリア画面を表示
*/
public static void putStageClear(){
if(good >= 20){
age = 1;
put(name + "君は" + age + "才になりました!!");
}else if(good >= 30){
age = 2;
put(name + "君は" + age + "才になりました!!");
}else if(good >= 40){
age = 3;
put(name + "君は" + age + "才になりました!!");
}
}
/**
* 育児を行う
*/
/*
static void ikuji(){
//育児ポイントの上昇
//わがまま・マイナスポイント
int d = r.nextInt(8);
wagamama -= d;
}
*/
public static int inputCommand() throws java.io.IOException{
int c = System.in.read();
if(c == 10 || c == 13){
return(inputCommand());
}
return(c);
}
public static void put(String str){
System.out.println(str);
}
}