4 回答

TA貢獻1966條經(jīng)驗 獲得超4個贊
因為終端正在等待某個值,所以在這一行中:
Scanner scan = new Scanner(System.in); int seconds = scan.nextInt();
基本上,您正在創(chuàng)建一個 Scanner 對象,并聲明一個 int 變量等待一個值(在本例中是下一個整數(shù))來執(zhí)行某些操作。
只需在終端中輸入一些整數(shù),它就應該可以正常工作。

TA貢獻1906條經(jīng)驗 獲得超3個贊
該解決方案已經(jīng)存在于其他答案中,但為什么是InputMismatchException
這個答案的目的。
從文檔中,
例如,以下代碼允許用戶從 System.in 讀取數(shù)字:
Scanner sc = new Scanner(System.in); int i = sc.nextInt();
為了nextInt()
公共 int nextInt()
將輸入的下一個標記掃描為 int。
拋出:
InputMismatchException
- 如果下一個標記與 Integer 正則表達式不匹配,或者超出范圍
這里的“clear”不匹配Integer的正則表達式。
由于您沒有向nextInt()
方法傳遞任何基數(shù),因此它預計輸入只有 0-9(十進制數(shù)字系統(tǒng) - 默認為基數(shù) 10)。如果是的話nextInt(16)
,它將接受任何十六進制(0-F,基數(shù) 16)數(shù)字等。
值得注意的是,在另一種情況下,您可以獲得相同的異常,如果input > Integer.MAX_VALUE
.

TA貢獻1862條經(jīng)驗 獲得超7個贊
在終端中,掃描儀正在等待用戶輸入 int 類型,您需要在終端中輸入秒。
顯示錯誤是因為您輸入的是 String 類型值,但掃描儀需要 int 類型。
希望這能解決這個問題。

TA貢獻1854條經(jīng)驗 獲得超8個贊
您需要提示用戶輸入以秒為單位的時間,以便您的掃描儀實際上可以為您的秒數(shù)輸入一些內(nèi)容。做這樣的事情:
System.out.println("Enter seconds to convert"); int seconds = scan.nextInt();
添加回答
舉報