Java输入输出与闰年判断实战解析:键盘输入处理与条件判断
一、原题完整代码呈现

以下是计算机二级Java考试中关于键盘输入和闰年判断的典型题型,包含4处需要填写的空白(标记为//*********Found**********):
//*********Found**********
import java.____________.*;
public class Java_1{
//*********Found**********
public static void main(String[] args) ____________ Exception{
InputStreamReader ir;
BufferedReader in;
ir=new InputStreamReader(System.in);
in=new BufferedReader(ir);
System.out.println("输入年份是:");
//*********Found**********
String s=____________.readLine();
//*********Found**********
int year=Integer.parseInt(_____________);
if(year%4==0&&year%100!=0||year%400==0){
System.out.println(""+year+"年是闰年.");
}
else{
System.out.println(""+year+"年不是闰年.");
}
}
}二、空白处逐一解析与解答
1. 第一处空白:输入输出包导入
答案:io
//*********Found**********
import java.io.*;解析:
程序中使用了InputStreamReader和BufferedReader类,这些类属于Java的输入输出包java.io。import java.io.*;语句用于导入该包下的所有类,使程序能够识别这些输入处理相关的类。
2. 第二处空白:异常声明
答案:throws
//*********Found**********
public static void main(String[] args) throws Exception{解析: BufferedReader的readLine()方法会抛出IOException,这是一种已检查异常。处理异常的方式有两种:使用try-catch块捕获,或在方法声明中用throws关键字声明抛出。本题采用后者,因此填写throws。
3. 第三处空白:读取输入的对象
答案:in
//*********Found**********
String s=in.readLine();解析:
前面已经创建了BufferedReader对象in(in=new BufferedReader(ir);),BufferedReader的readLine()方法用于读取一行文本输入。因此此处应通过in对象调用该方法,将读取的字符串存储到s变量中。
4. 第四处空白:字符串转整数的参数
答案:s
//*********Found**********
int year=Integer.parseInt(s);解析: Integer.parseInt(String s)方法用于将字符串转换为整数。前面已经通过readLine()将用户输入的年份读取到字符串变量s中,此处需要将s作为参数传入,转换为整数类型的year变量,以便进行闰年判断。
三、完整正确代码
四、程序功能与运行说明
程序功能
该程序实现以下功能:
- 通过键盘接收用户输入的年份(字符串形式)
- 将输入的字符串转换为整数
- 根据闰年判断规则,判断该年份是否为闰年
- 输出判断结果
运行说明
- 程序运行后,会显示提示信息"输入年份是:"
- 用户需要输入一个整数年份(如2020、2023等)并按回车
程序会自动判断该年份是否为闰年,并输出结果:
- 闰年输出:"XXXX年是闰年."
- 非闰年输出:"XXXX年不是闰年."
五、核心知识点总结
输入处理流
InputStreamReader:将字节流(System.in)转换为字符流BufferedReader:提供缓冲功能,其readLine()方法可读取一行文本- 流的嵌套关系:
System.in→InputStreamReader→BufferedReader,形成处理链
异常处理方式
- 声明抛出:在方法签名中用
throws Exception声明可能抛出的异常 - 捕获处理:使用
try-catch块捕获并处理异常 - 本题采用声明抛出方式,简化了代码结构(实际开发中更推荐
try-catch)
- 声明抛出:在方法签名中用
类型转换
Integer.parseInt(String s):将字符串转换为整数- 注意事项:如果字符串不是合法的整数格式,会抛出
NumberFormatException
闰年判断规则
- 能被4整除但不能被100整除,或者能被400整除的年份是闰年
- 逻辑表达式:
year%4==0&&year%100!=0||year%400==0 - 优先级说明:
&&优先级高于||,确保判断逻辑正确
六、常见错误与应试技巧
常见错误分析
- 第一处空白写错包名:如
input或output,正确包名是io - 第二处空白使用
throw而非throws:throw用于抛出具体异常对象,throws用于方法声明 - 第三处空白用
ir调用readLine():InputStreamReader没有readLine()方法,需通过BufferedReader对象in调用 - 第四处空白直接写字符串:如
"s",应传入变量s而非字符串字面量
- 第一处空白写错包名:如
应试技巧
- IO包记忆:输入输出相关类都在
java.io包中 - 输入流链模板:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); - 类型转换口诀:字符串转整数用
Integer.parseInt(字符串变量) - 闰年规则:记住"四年一闰,百年不闰,四百年再闰"的判断逻辑
- IO包记忆:输入输出相关类都在
通过本题,我们掌握了Java中键盘输入的处理方法、字符串与整数的类型转换,以及闰年判断的逻辑实现。这些知识点在实际开发中常用于数据输入、格式转换和业务逻辑判断,是Java基础编程的重要组成部分,也是计算机二级Java考试的常见考点。