嘿,大家我正在用java(我目前還在學習語言)的個人項目工作,並帶着一個或兩個問題來到這裏。掃描儀不按預期工作
首先問
在我try塊允許我要求用戶輸入一個值賦給一個變量,並且在我的catch塊,如果用戶輸入一個錯誤的值或跳過該條目,它拋出異常並通知用戶已設置了默認值。這是做到這一點的正確方法是?
代碼示例
(注:我有很多這樣的嘗試工作方式與方法中下面的一個相同/ catch語句)
try {
System.out.print("Please enter a value for price of computer: ");
price = sc.nextFloat();
} catch (InputMismatchException ex) { //Catch skip or error
System.out.println("You entered an invalid value for price, it is assumed to be 0.");
price = 0F; //Assign a default value
}
第二個問題
當我編譯並執行它,它不允許我輸入變量,而是跳到異常。我不確定我錯過了什麼,所以我會喜歡任何建議,並再次感謝一個偉大的社區。
您是否清除了掃描儀緩衝區? – Paul
我以爲你不能明確地清除掃描儀的緩衝區。我在內部讀過某處,它可能會在讀取令牌後清除緩衝區,但這是程序員觸及範圍之外的實現細節。 – CoderC
要清除它,只需在將掃描儀用於其他數據類型之前調用nextLine()方法;例如,如果您使用nextLine()方法,然後想要使用nextFloat()方法,則必須創建一個新對象,或者您必須在nextFloat()方法之前再次使用nextLine()方法 – Paul