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

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

線程“main”中錯誤輸入異常出錯

線程“main”中錯誤輸入異常出錯

泛舟湖上清波郎朗 2023-08-16 15:53:44
int number = scanner.nextInt ();如果我放入括號if并寫出錯誤的輸入,則會出現問題,但效果很好。但如果我不在 之外寫它if,當我輸入錯誤的輸入時,它會給出以下錯誤Exception in thread "main" java.util.InputMismatchExceptionat java.base/java.util.Scanner.throwFor(Scanner.java:939)at java.base/java.util.Scanner.next(Scanner.java:1594)at java.base/java.util.Scanner.nextInt(Scanner.java:2258)at java.base/java.util.Scanner.nextInt(Scanner.java:2212)at UserInput.main(UserInput.java:15)代碼:import java.util.Scanner;public class UserInput {public static void main(String[] args) {    int Sum=0, counter = 0,no=1;    Scanner scanner;    scanner = new Scanner(System.in);    do {        System.out.println("Enter number #" + no + " = ");        boolean result =  scanner.hasNextInt();        int number = scanner.nextInt();        if(result == true)        {            counter = counter + 1;            Sum = Sum + number;            no = no+1;        }        else        {            System.out.println("Invalid Input");        }        scanner.nextLine();        }while(counter<10);    System.out.println("Sum = " + Sum );    scanner.close();    }}
查看完整描述

2 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

如果 hasNextInt() 返回 false,則意味著掃描器的下一個標記(標記=“掃描”的對象的片段)不是整數。如果您現在調用方法 nextInt(),盡管下一個標記實際上不是 Integer,那么您將得到 InputMismatchException。正如 Scott 所說,通過將調用放在 if 語句中,您可以防止這種情況發生,因為您可以確保下一個標記是一個整數,并且您實際上可以調用 nextInt()。



查看完整回答
反對 回復 2023-08-16
?
神不在的星期二

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

通過將其放入,除非您知道有一個可以獲?。礊檎妫?,否則if您不會調用。nextIntresult



查看完整回答
反對 回復 2023-08-16
  • 2 回答
  • 0 關注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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