LoginSignup

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

hasNextInt(); 警告の理由がわかりません。

Q&AClosed

解決したいこと

hasNextInt();
を使ったコードに警告が出ます。何度も似たようなコードを書いてきたのですが、このようなコードが出たのは始めてです。理由がわかる方がいたら教えていただけないでしょうか?

このコードはトランプゲームの中にあるメソッドの一つです。
メソッドの役割は、賭けるチップの数の入力でその入力が適正にされるまで繰り返すループになっています。そして、初めにそれが数字であることが確認できるように

boolean isAnInt = scanner.hasNextInt();

というコードがあります。
このコードに警告メッセージが出ます。

発生している問題・エラー

到達不能

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

    public int betChip() {
        int num = 0;
        while (true)
            System.out.println("■ BET枚数選択\nBETするチップを入力してください。(最低1〜最高20)");
        boolean isAnInt = scanner.hasNextInt();     //49行目
        //警告が出る理由がわからない。。

        if (isAnInt) {
            num = scanner.nextInt();
            scanner.nextLine();
            if (num > 20 || num < 0 || num > this.chip.getScore()) {
                System.out.println("適切な数字を入力してください。");
                num = 0;
            } else {
                System.out.println("ゲームに進みます。");
                return num;
                break;
            }
        } else {
            System.out.println("数字を入力してください。");
            scanner.nextLine();
        }
    }

自分で試したこと

boolean isAnInt = scanner.hasNextInt();

このコードが使われているお手本のコードを見返してみたのですが、警告の理由がわかりません。

0

1Answer

その手前にwhile (true)とありますが、どのような意味があるのですか?(無限ループしていませんか?)

0

Comments

  1. @Choco_Late

    Questioner
    適正な数字が入力されるまで繰り返し質問をされるように無限ループにしています。
  2. 適正な数字が入力されたときの処理はどうなっているでしょうか?
  3. @Choco_Late

    Questioner
    警告が出ていたの、実行ができていませんでした。
    お騒がせしました。whileのあとの{}が抜けていました。すみません。

Your answer might help someone💌