前提・実現したいこと
好きな果物を選択した後に「はい」「いいえ」で再度選択するのですが
「はい」を選択すると問題なく動きますが、一度「いいえ」を選択したあとに
再び「はい」を選択すると、もう一度果物の選択が表示されてしまいます。
このような動作をしてしまう理由が分からないので教えて頂きたいです。
発生している問題・エラーメッセージ
次の中から好きな果物を選んでください 1:【メロン】 2:【りんご】 3:【バナナ】 1 メロンですね 1:【はい】 2:【いいえ】 2 もう一度選択してください 1:【メロン】 2:【りんご】 3:【バナナ】 1 メロンですね 1:【はい】 2:【いいえ】 1 正しいキーを入力してください //ここから 1:【メロン】 ・ 2:【りんご】 ・ 3:【バナナ】 //ここまでが動いてしまう理由がわかりません 1 メロンですね 1:【はい】 2:【いいえ】 1 あなたの好きな果物はメロンですね
該当のソースコード
java
1public class test4 2{ 3 public static void main(String[] args) 4 { 5 System.out.println("次の中から好きな果物を選んでください"); 6 7 String fruit = name(); 8 9 System.out.println("あなたの好きな果物は" + fruit + "ですね"); 10 } 11 12 public static String name() 13 { 14 String m = "メロン"; 15 String r = "りんご"; 16 String b = "バナナ"; 17 18 System.out.println("1:【" + m + "】"); 19 System.out.println("2:【" + r + "】"); 20 System.out.println("3:【" + b + "】"); 21 int ans = new java.util.Scanner(System.in).nextInt(); 22 23 if(ans == 1){ 24 System.out.println(m + "ですね"); 25 int ans2 = Choose(); 26 if(ans2 == 1){ 27 return m; 28 }else{ 29 ng(); 30 } 31 } 32 if(ans == 2){ 33 System.out.println(r + "ですね"); 34 int ans2 = Choose(); 35 if(ans2 == 1){ 36 return r; 37 }else{ 38 ng(); 39 } 40 } 41 if(ans == 3){ 42 System.out.println(b + "ですね"); 43 int ans2 = Choose(); 44 if(ans2 == 1){ 45 return b; 46 }else{ 47 ng(); 48 } 49 }else{ 50 System.out.println("正しいキーを入力してください"); 51 return name(); 52 } 53 return name(); 54 } 55 56 public static int Choose(){ 57 System.out.println("1:【はい】"); 58 System.out.println("2:【いいえ】"); 59 int ans2 = new java.util.Scanner(System.in).nextInt(); 60 //System.out.println("もう一度選んでねorz"); 61 return ans2; 62 } 63 64 public static String ng(){ 65 System.out.println("もう一度選択してください"); 66 return name(); 67 } 68} 69
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/02 03:46
2019/08/02 03:59 編集
2019/08/02 04:00
2019/08/02 09:39
2019/08/02 09:42
2019/08/02 10:17