首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

【Java 每日一題】20161123:Scanner 循環輸入與條件判斷輸出分析

     編輯:Java 綜合教學

Java 每日一題:Scanner 循環邏輯輸出分析

本題考察 Scanner.hasNextInt() 循環條件、整數輸入處理、條件判斷與輸出格式。

題目代碼

package Nov2016;
import java.util.Scanner;

public class Ques1123 {
    public static void main(String[] args) {
        Scanner num = new Scanner(System.in);
        System.out.print("請輸入數量:");
        while (num.hasNextInt()) {
            int n = num.nextInt();
            // 輸入數量+1000後與1500比較
            if (n > 0 && n + 1000 < 1500) {
                System.out.println("輸入的數是:" + n);
            }
        }
    }
}

運行邏輯分析

  1. Scanner 讀取標準輸入,hasNextInt() 判斷下一個 token 是否為整數(遇到非整數或 EOF 返回 false,循環結束)。
  2. 每次讀取一個整數 n。
  3. 條件 n > 0 && n + 1000 < 1500 等價於 0 < n < 500。
  4. 滿足條件時輸出 輸入的數是:n;不滿足無任何輸出,繼續等待下一個輸入。
  5. 輸入非整數(如 "exit")或 Ctrl+D/Ctrl+Z 結束循環,程序退出。

示例交互

請輸入數量:100
輸入的數是:100
200
輸入的數是:200
600
499
輸入的數是:499
abc
(程序結束)

關鍵知識點

  • Scanner.hasNextInt() 不消耗 token,只預判;nextInt() 消耗並返回。
  • 循環結束條件:輸入流結束或下一個 token 非整數。
  • 條件邊界:n=500 時 500+1000=1500 不滿足 <1500,無輸出。
  • 無輸入提示重複打印(提示在循環外),用戶需自行知道何時結束。

改進建議

// 增加退出提示與非整數處理
System.out.println("請輸入整數(非整數退出):");
while (num.hasNext()) {
    if (num.hasNextInt()) {
        int n = num.nextInt();
        if (n > 0 && n + 1000 < 1500) {
            System.out.println("輸入的數是:" + n);
        }
    } else {
        String token = num.next(); // 消耗非整數 token 避免死循環
        System.out.println("檢測到非整數 \"" + token + "\",退出。");
        break;
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved