日期:2014-05-20  浏览次数:21127 次

java程序如何判断有没有进入死循环
我有个程序在跑一部分数据的时候可能会进入死循环,
我想看看是那些数据的问题,
但是数据量比较大,人工比较费时间,
所以想有没有程序可以检测死循环的?
------解决方案--------------------
可以用走迷宫的思路来重写你这个循环。
循环过的数据做个标记,当下次再循环到这个数据时,可能就是进入到死循环了(当然也不一定),这个时候你可以采取一些措施避免进入死循环,同时记录下这个数据(也就是你说的“我想看看”的那部分数据)。
------解决方案--------------------
吧数据干到控制台上不行呀。在分析数据。
------解决方案--------------------
在循环后面的那句执行不到就表示死循环
------解决方案--------------------
我以前数据多的时候会这样做:
设记录循环次数的变量为i ,总次数为size
if(i = size/5)
   System.out.println("times = "+ i);
if(i = (size/5) *2)
   System.out.println("times = "+ i);
...
...
这样相当于每1/5设一个断点。假如发现问题出现在2/5到3/5之间,也就是只打印到这之前就打印不了后面的语句了,就可以修改if的条件进一步在这个范围内查找。一步步锁定出问题的数据。
------解决方案--------------------
不知道 你的代码是什么。看了你的那个for和switch结构 就随便写了个程序你看下。不知道问题是不是那样。
我在for中加了个变量temp。
package Test;
public class fortTest {
public static void main(String[] args) {
for (int i = 0, temp = 0; i < 20; i++, temp++) {
if (temp != i)
break;
switch (i) {
case 1:
break;
case 10:
i = 6;
System.out.println(i);
break;
case 3:
break;
}
}
}
}

------解决方案--------------------
Debug一下