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

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

在 Java 中使用 .hasNextInt() 進行一些簡單的異常處理有問題嗎?

在 Java 中使用 .hasNextInt() 進行一些簡單的異常處理有問題嗎?

HUX布斯 2022-12-28 10:51:38
我正在為與菜單上的數字相對應的食品菜單創建數組列表。其中大部分被遺漏了:我的主要問題是錯誤消息不會在用戶第一次不輸入整數值時顯示。按下回車鍵后控制臺上不會顯示任何內容,但如果我再次輸入不是整數的內容,它將正常工作并顯示錯誤消息。編輯:還有一點我應該注意的是,在代碼的前面我使用了相同的掃描儀對象,所以使用 .next() 來清除它以前的值。        orderArray = new String[length];        menuDisplay();         int item; //the item number that user must enter        for(int i=1; i<=length;i++)        {            System.out.println("Please choose item #"+ i+": ");            scan.next();            while(!scan.hasNextInt()) //this while loop checks that an integer value has been entered            {                System.out.println("Please enter an integer value from the above menu.");                scan.next();            }        }
查看完整描述

1 回答

?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

hasNextInt檢查下一個令牌,而不是剛剛收到的令牌,所以總是在調用之前hasNextXxx() 先調用nextXxx()。


您還想實際獲取整數值并將其分配給item.


像這樣重新排列您的代碼:


System.out.println("Please choose item #"+ i+": ");

while (!scan.hasNextInt()) //this while loop checks that an integer value has been entered

{

    System.out.println("Please enter an integer value from the above menu.");

    scan.next(); // skip bad token

}

item = scan.nextInt();


查看完整回答
反對 回復 2022-12-28
  • 1 回答
  • 0 關注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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