我想知道是否有一種簡單的方法來顯示錯誤字符或無效輸入數(shù)據(jù)的錯誤。public static void main(String[] args) {
// Step 1: Create new Scanner object.
Scanner input = new Scanner(System.in);
// Step 2: Prompt the user to enter today's day.
System.out.print("Enter today’s day as an Integer (0-6): ");
int Today = input.nextInt();
// Step 3: Prompt the user to enter the number of days elapsed since today.
System.out.print("Enter the number of days elapsed since today as an Integer: ");
int DaysElapsed= input.nextInt();
// Step 4: Compute the future day.
int FutureDay = (Today + DaysElapsed) % 7;
// Step 5: Printing the results.
// Step 5.1: Today's day result depending the case.
System.out.print("Today is ");
// Step 5.2: Future day result depending the case.
System.out.print(" and the future day is ");
2 回答

慕妹3146593
TA貢獻(xiàn)1820條經(jīng)驗 獲得超9個贊
因為你只是期待'int'來自scanner.nextInt()
它會拋出InputMismatchException
異常。所以你可以int
像這樣輕松驗證你的輸入-
try { int Today = input.nextInt(); int DaysElapsed= input.nextInt();} catch (InputMismatchException){ System.err.println("Input is not an integer");}
Scanner.nextInt()也拋出NoSuchElementException
和IllegalStateException
異常此外,您可以通過使用條件(today>=1 && today=<31
)驗證輸入日期是否有效

牛魔王的故事
TA貢獻(xiàn)1830條經(jīng)驗 獲得超3個贊
使用nextInt(),您已經(jīng)將允許的值過濾為整數(shù)。但是,如果您希望用戶輸入有限范圍內(nèi)的值,您可以使用以下內(nèi)容:
int Today = 0; if (input.hasNextInt()) { if (input.nextInt() < 32 && input.nextInt() > 0) { //should be between 0-32 Today = input.nextInt(); } else { throw new Exception("Number must be between 0-32"); } }
編輯:
如果您想繼續(xù)出錯:
int Today = 0; if(input.hasNextInt()) { Today = input.nextInt(); while (!(Today > 0 && Today < 32)){ System.out.println("Number must be between 0-32"); Today = input.nextInt(); } }
添加回答
舉報
0/150
提交
取消