使用IntelliJ IDEA能否在Java控制台打印前调试查看变量值?
IntelliJ IDEA 调试Java代码查看控制台输出前变量值操作指南
完全可以在内容打印到控制台前通过调试器查看任意阶段的变量取值,IntelliJ IDEA的内置调试功能完整支持该需求,针对你提到的传入输入查看中间值的场景,具体操作逻辑如下:
- 基础调试准备:在你需要查看变量状态的代码行左侧点击,打上红色断点标记,不要选择普通的运行模式,点击工具栏上虫子图标的Debug按钮启动程序。程序执行到断点位置会自动暂停,此时断点之后的代码都还未执行,自然不会触发后续的控制台打印,你直接看底部Debug窗口的Variables面板,就能看到当前作用域内所有变量的实时取值,也可以选中代码里的任意表达式右键选择
Evaluate Expression,实时计算表达式的返回结果。 - 传入控制台输入的操作:Debug模式下的控制台输入逻辑和普通运行模式完全一致,程序启动后直接点击底部的Console面板,按照程序提示正常输入内容、按回车提交即可。程序会按照你输入的内容正常往下执行,走到你设置的断点位置就会自动暂停,此时你就能看到输入处理完成、后续打印逻辑还未执行时的所有变量中间值,不需要做额外的特殊配置。
- 常用调试技巧:
- 单步执行控制:程序暂停在断点时,按默认快捷键
F8可以单步执行下一行代码,每走一步都能在Variables面板看到变量的变化,全程可以卡在打印逻辑执行前查看所有中间状态。 - 不暂停打日志:如果不想让程序中断执行,可以右键点击断点,取消
Suspend勾选,再选择Log evaluated expression,填入你要监控的变量名,程序执行到该位置时会自动在控制台打印变量值,不会打断运行流程。 - 临时修改变量:如果要测试不同输入对应的逻辑,不需要重启程序重输参数,直接在Variables面板右键对应变量选择
Set Value,输入新的取值后,程序就会按照你修改后的值继续往下执行。
- 单步执行控制:程序暂停在断点时,按默认快捷键
实际场景示例:
以一段读取输入计算的简单代码为例:import java.util.Scanner; public class DebugDemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入一个整数:"); int inputNum = sc.nextInt(); // 在此行设置断点 int calcResult = inputNum * 3 + 1; System.out.println("最终计算结果:" + calcResult); } }Debug启动程序后,在Console面板输入数字
4按回车,程序会直接暂停在断点行,此时inputNum已经完成读取赋值、后续的计算和结果打印都还未执行,你可以直接看到inputNum的取值为4;按一次F8执行完计算行,就能看到calcResult的取值为13,此时最后一行打印逻辑还没运行,控制台不会输出最终结果,完全符合查看打印前中间值的需求。
内容的提问来源于stack exchange,提问作者Константин Косев
相关产品推荐
相关产品推荐

