IDEA调试程序的基本方法

IDEA基本调试步骤

版本

IntelliJ IDEA 2020.1 x64
操作系统 Windows10 64位

步骤

先上一段代码,求解如下问题,因为涉及了循环,判断等,可以用于调试
问题:寻找某两个数相除,其结果 离黄金分割点 0.618最近

分母和分子不能同时为偶数
分母和分子 取值范围在[1-20]

public class GoldRate {

    static double rate = 0.5; //保存两个数的比例
    static double temp;  //存储中间的结果
    static int x , y; // 记录对应的两个数

    public static void main(String[] args) {

        for (int i = 2; i <= 20; i++ ) {
            for ( int j = i / 2; j < i; j++ ) {
            	if(i % 2 == 0 && j % 2 == 0) continue;  //判断是否同为偶数,是则跳过
                temp = 1.0 * j / i;
                if( Math.abs(temp - 0.618) < Math.abs(rate - 0.618)) {  //比较当前数是否更接近黄金比例
                    x = j; y = i;
                    rate = temp;
                }
            }
        }

        System.out.println("离黄金分割点(0.618)最近的两个数是:" + x + "/"+ y + " = " + rate);
    }
}

步骤一:
开启IDEA,创建好类,输入代码
在这里插入图片描述
步骤二
设置断点:
不先设置断点的话,程序是顺序执行完的,也就没法调试了
直接在对应的行左边点击一下,出现一个小红点,就成功设置了一个断点。
我在图中十一行的位置设置了一个断点
还可以点击菜单栏Run -> Toggle Breakpoint -> LineBreakpoint 来设置行断点,但是更麻烦一点,直接点击左边的行也挺方便的,就是不清楚有没有更方便的方法,如果可以纯键盘操作,那就快多了
在这里插入图片描述
接着点击右上角的小虫(或者Run->Debug) 进入调试
在这里插入图片描述

在这里插入图片描述
1.调试过程中我们最应该关注的是下面那个Variables区域,里面的内容就是当前变量的状态
2.Static members of xxxx是可以展开的,里面是一些静态变量
3.被指定的那一行代码(即和其他行颜色不一样的)是将要执行而还未执行的代码

步骤三
正式调试

设置了断点以后,程序默认执行到这里就不执行了,那我们怎么让它接着往下执行呢?
IDEA提供了六个调试选项
在这里插入图片描述

我先写我目前了解的四个:
1、step over
在这里插入图片描述
单步执行每一行代码,这个很容易理解,就是一次执行一行呗,但是它还有一个特点,就是遇到一个函数的时候,不会进入函数内部,而是把函数直接执行完后再出来,也就是把一个函数当作一个整体。
2、step into
在这里插入图片描述
这个和上面那个的区别就是会进入函数内部,而不是把函数当作一个整体
3、Force step into在这里插入图片描述
该按钮在调试的时候能进入任何方法。
4、step out在这里插入图片描述
当你觉得当前的函数没有问题的时候,可以点击这个执行完当前函数剩余部分,相当于调试中退出该函数,不过函数的剩余部分是会被执行的

调试的过程中,通过观察,分析,理解变量值的变化来加强对代码的理解,或者寻找代码的错误所在

退出调试

在这里插入图片描述
点击这个就可以退出调试,恢复到之前的界面

日后有时间,我再写一篇具体的调试过程吧

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值