JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

java 基础调试技巧与控制台输入输出

wys521 2025-04-01 23:40:42 精选教程 30 ℃ 0 评论

一、基础调试技巧(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;
    }
}

调试步骤

  1. 点击行号左侧设置断点(红色圆点)
  2. 右键选择 Debug 'DebugDemo.main()'
  3. 使用调试工具栏: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 调试时变量不显示

解决方法

  1. 检查是否处于调试模式
  2. 确保变量在当前作用域内
  3. 在Watches窗口手动添加观察变量

学习建议

1.调试实践

  • 在循环体内设置断点观察变量变化
  • 尝试修改运行中的变量值观察程序行为
  • 使用条件断点调试数组越界问题

2.输入输出练习

  • 编写计算器程序(输入两个数+运算符)
  • 实现用户注册系统(输入用户名/密码/年龄)
  • 制作简易商品库存管理系统

3.进阶技巧

  • 使用System.console()获取密码输入(隐藏输入)
  • 学习日志框架(如SLF4J)替代System.out
  • 掌握IDE的Evaluate Expression功能(调试时执行代码片段)

掌握这些调试和输入输出技能后,可以更高效地开发Java应用程序,快速定位和修复代码中的问题。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表