前提・実現したいこと
player_cntに3以上の数字を入力させたい(失敗したらもう一度入力させる)です。3以上の数字が入力されたらbreak;して処理を終わる。3未満の数字の場合は、"3人以上を入力してください"を表示した後にもう一度player_cntに入力させる。この2つは問題ないのですが、player_cntに数字以外(例 あああ)が入力された時に無限ループが始まってしまいます。私が実現したいのは、"数値以外が入力されました"を表示した後にもう一度player_cntに正しく入力させたい。
どんな方法でもいいのでplayer_cntに3以上の数字を入力させたい(失敗したらもう一度入力させる)を実現する方法がありましたらご教授お願い致します。
発生している問題・エラーメッセージ
player_cntに数字以外(例 あああ)が入力された時に
3人以上を入力してください
人数を入力:数値以外が入力されました
が無限ループする
該当のソースコード
Java
1import java.util.*; 2public class Main { 3 4 public static void main(String[] args) { 5 Scanner in = new Scanner(System.in); 6 7 int player_cnt = 0; 8 for(;;) { 9 try { 10 System.out.print("人数を入力:"); 11 player_cnt = in.nextInt(); 12 } catch (InputMismatchException e) { 13 System.out.println("数値以外が入力されました"); 14 } 15 if(player_cnt >= 3) { 16 break; 17 } 18 else { 19 System.out.println("3人以上を入力してください"); 20 } 21 } 22}
試したこと
考えたこと
InputMismatchException eが間違えている?
trycatchの使い方がおかしい?
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/21 10:18