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