A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

zlleo

初级黑马

  • 黑马币:19

  • 帖子:7

  • 精华:0

© zlleo 初级黑马   /  2019-3-29 15:28  /  473 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

    君哥说,断点调试时Java中的内功心法,所以我就写我的一次断点调试经历吧    在编程中,总是不可避免的遇见错误,有些错误IDE或指出,而有些逻辑性的错误IDE并不会指出,所以这时我们就需要用到断点调试技术,毕竟有句话说“当局者迷”
    在断点调试时,最重要的是设置断点,毕竟如果程序有很多行,从头开始太浪费时间了。所以合理的设置断点调试的条件很重要,我们可以通过结果推断错误发生的原因,即如果出现错误,首先分析结果出现的可能原因,通过可能出现的原因来设置断点。
     eg:有一道题目是生成一个范围在[15  35]之间的随机数,将其存入一个长度为10 的数组中,要求值不能重复,所以我按照要求编写了如下程序
      
但是我运行程序之后,发现一直不能停止,但是当时只是以为需要时间比较久,后来关闭重开有几次是很快结束了,但是更多的是卡住。人工检查了程序几次,并没有发现什么错误,但是运行就是有问题,所以使用了断点调试,因为是结果出现了问题,但是输出语句不太可能出现问题,所以必然是循环的时候有问题,所以我将断点设置在for循环中,通过断点调试我发现在元素没有出现重复时,都不会出现问题,只要元素出现重复,程序就会进入死循环,经过仔细的检查发现flag的设置有问题。

flag在for循环外面,内部一旦设置为true之后就不能自动重置了,所以需要将flag设置在for循环内部。
经过修改,程序果然不会再死循环了


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马