簡體   English   中英

Java - 如何在不使用 while 循環的情況下檢查 Scanner 輸入是否為整數?

[英]Java - How do I check if a Scanner input is an integer without using a while loop?

我為我的一項任務編寫了一個程序,該程序要求輸入分配給整數變量。 賦值的一個部分是,如果整數輸入不是 1、2、3 或 4,程序應該打印一條語句,說明這是一個無效輸入,然后結束程序。

如果用戶輸入大於 4 或小於 1 的輸入,我已經想出了如何讓它打印此語句,但我無法弄清楚如何在輸入雙精度值時獲得相同的結果。

我設法通過使用 while 循環檢查輸入是否為整數來使其工作,

while (!input.hasNextInt()){
    System.out.println("Invalid choice. Good-bye.");
    input.next();
}
int selection = input.nextInt();

我希望它將其識別為無效輸入,然后在那里結束程序。 相反,它等待用戶的另一個有效輸入

根據分配的預期結果:“如果用戶輸入 1、2、3 或 4 以外的任何內容,程序應打印“無效選擇。 再見。” ”

您沒有提到輸入有效數字或用戶輸入整數以外的任何內容時會發生什么。
因此,當用戶輸入非整數值或不在 1 和 4 之間的整數時,此代碼將退出程序:

Scanner input = new Scanner(System.in);
int number = 0;
boolean valid = false;
System.out.println("Enter number: ");
if (input.hasNextLine()) {
    if (input.hasNextInt()) {
        number = input.nextInt();
        if (number >= 1 && number <= 4) {
            valid = true;
            System.out.println("Valid choice:" + number);
        }
    }
    input.nextLine();
    if (!valid) {
        System.out.println("Invalid choice. Good-bye.");
        System.exit(0);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM