一、基础调试技巧(IntelliJ IDEA为例)
1.1 断点设置与基本调试
public class DebugDemo {
public static void main(String[] args) {
int a = 5;
int b = 3; // 在此行左侧点击设置断点
int sum = add(a, b);
System.out.println("结果:" + sum);
}
public static int add(int x, int y) {
int result = x + y; // 方法内设置断点
return result;
}
}
调试步骤:
- 点击行号左侧设置断点(红色圆点)
- 右键选择 Debug 'DebugDemo.main()'
- 使用调试工具栏:F8 : 单步执行(Step Over)F7 : 进入方法(Step Into)F9 : 跳到下一个断点Alt+F9 : 运行到光标处
1.2 变量观察技巧
- 查看变量:在Variables窗口实时查看变量值鼠标悬停变量显示当前值
- 修改变量:
int count = 0; // 调试时右键变量选择"Set Value"(可修改为任意值)
1.3 条件断点(高级功能)
java
for (int i = 0; i < 10 i system.out.printlni i>5
}
设置方法:右键断点 → 输入条件 i > 5
二、控制台输出
2.1 基础输出方法
System.out.println("Hello World"); // 换行输出
System.out.print("不换行输出"); // 不换行
System.out.printf("PI=%.2f", 3.1415); // 格式化输出 → "PI=3.14"
2.2 格式化输出详解
格式符 | 说明 | 示例 |
%s | 字符串 | printf("Name: %s", "Tom") |
%d | 十进制整数 | printf("Age: %d", 25) |
%f | 浮点数 | printf("Price: %.2f", 9.9) |
%n | 换行符 | printf("Line1%nLine2") |
示例:
String product = "手机";
double price = 2999.99;
int stock = 50;
System.out.printf("商品:%s%n价格:yen%.2f%n库存:%d件",
product, price, stock);
输出:
商品:手机
价格:yen2999.99
库存:50件
三、控制台输入
3.1 使用Scanner类
import java.util.Scanner;
public class InputDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入姓名:");
String name = scanner.nextLine();
System.out.print("请输入年龄:");
int age = scanner.nextInt();
System.out.printf("你好%s,你今年%d岁", name, age);
scanner.close(); // 关闭扫描器
}
}
3.2 处理混合输入问题
Scanner scanner = new Scanner(System.in);
System.out.print("输入数字:");
int num = scanner.nextInt();
System.out.print("输入文本:");
scanner.nextLine(); // 消耗换行符
String text = scanner.nextLine();
3.3 输入验证示例
System.out.print("请输入分数(0-100):");
while (!scanner.hasNextInt()) {
System.out.println("输入错误,请重新输入!");
scanner.next(); // 清除错误输入
}
int score = scanner.nextInt();
四、调试与输入输出综合练习
4.1 学生成绩录入调试
import java.util.Scanner;
public class GradeSystem {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] scores = new int[3];
for (int i = 0; i < scores.length; i++) {
System.out.printf("请输入第%d门成绩:", i+1);
// 在此行设置断点观察i值变化
scores[i] = scanner.nextInt();
}
printAverage(scores);
scanner.close();
}
private static void printAverage(int[] arr) {
int sum = 0;
for (int num : arr) {
sum += num; // 在此行设置断点观察sum累加
}
System.out.printf("平均分:%.2f", (double)sum/arr.length);
}
}
五、常见问题解决方案
5.1 输入不匹配异常
错误现象:
Exception in thread "main" java.util.InputMismatchException
解决方法:
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数字:");
while (!scanner.hasNextInt()) {
System.out.println("请正确输入数字!");
scanner.next(); // 清除错误输入
}
int num = scanner.nextInt();
5.2 调试时变量不显示
解决方法:
- 检查是否处于调试模式
- 确保变量在当前作用域内
- 在Watches窗口手动添加观察变量
学习建议
1.调试实践:
- 在循环体内设置断点观察变量变化
- 尝试修改运行中的变量值观察程序行为
- 使用条件断点调试数组越界问题
2.输入输出练习:
- 编写计算器程序(输入两个数+运算符)
- 实现用户注册系统(输入用户名/密码/年龄)
- 制作简易商品库存管理系统
3.进阶技巧:
- 使用System.console()获取密码输入(隐藏输入)
- 学习日志框架(如SLF4J)替代System.out
- 掌握IDE的Evaluate Expression功能(调试时执行代码片段)
掌握这些调试和输入输出技能后,可以更高效地开发Java应用程序,快速定位和修复代码中的问题。
本文暂时没有评论,来添加一个吧(●'◡'●)