亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 while 循環中安全地掃描整數?

如何在 while 循環中安全地掃描整數?

精慕HU 2022-06-23 09:21:48
我想掃描一個整數并將它放在一個while循環中,這樣如果輸入了一個無效的條目,程序會要求輸入另一個整數,但是當我運行它時,它不允許我輸入新的整數,只會打印無效多次進入。do {    System.out.println("Maximum number of Students:");    if(input.hasNextInt()) {        maxstudents = input.nextInt();        if (maxstudents > 0) {            break;        }    } else {        System.out.println("Invalid entry");    }} while(true);
查看完整描述

3 回答

?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

將其他更改為:


  else {

    System.out.println("Invalid entry");

    input.nextLine();

  }

因此,對于無效輸入,您需要將光標移動到下一行,以便您可以再次接受輸入。


查看完整回答
反對 回復 2022-06-23
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

但我建議您為負整數情況添加另一條警告消息,并將此代碼移動到單獨的方法中。


public static int getMaxStudents(Scanner scan) {

    do {

        System.out.print("Maximum number of Students: ");


        if (scan.hasNextInt()) {

            int maxStudents = scan.nextInt();


            if (maxStudents > 0)

                return maxStudents;

        }


        System.out.println("Enter a valid positive integer number");

        scan.nextLine();    // <-- this is mandatory

    } while (true);

}


查看完整回答
反對 回復 2022-06-23
?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

do {

        System.out.println("Maximum number of Students:");

            if(input.hasNextInt()) {

                maxstudents = input.nextInt();

                    if (maxstudents > 0) {

                        break;

                    }

            }

            else {

                System.out.println("Invalid entry:"+scanner.next());

            }

    }while(true);


查看完整回答
反對 回復 2022-06-23
  • 3 回答
  • 0 關注
  • 77 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號