java程序如何判断有没有进入死循环

aotian16 2012-12-10 10:14:52
我有个程序在跑一部分数据的时候可能会进入死循环,
我想看看是那些数据的问题,
但是数据量比较大,人工比较费时间,
所以想有没有程序可以检测死循环的?
...全文
1051 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
昕玫 2012-12-10
  • 打赏
  • 举报
回复
我以前数据多的时候会这样做: 设记录循环次数的变量为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的条件进一步在这个范围内查找。一步步锁定出问题的数据。
zxhcloth 2012-12-10
  • 打赏
  • 举报
回复
“可以用走迷宫的思路来重写你这个循环。 循环过的数据做个标记,当下次再循环到这个数据时,可能就是进入到死循环了(当然也不一定),这个时候你可以采取一些措施避免进入死循环,同时记录下这个数据(也就是你说的“我想看看”的那部分数据)。” 这个思路可以做啊,具体要你自己去写。 或者你改变整个业务的实现思路,而不是仅仅盯在for循环这个小区域。
aotian16 2012-12-10
  • 打赏
  • 举报
回复
是这样的代码 类似于 for switch case 1 case 2 case 3 在case中会改变for中的循环量i 所以会出现死循环 而且是一个单线程的程序, 所以就停下来了 无法继续下一个
Swear_fling 2012-12-10
  • 打赏
  • 举报
回复
在循环后面的那句执行不到就表示死循环
zxhcloth 2012-12-10
  • 打赏
  • 举报
回复
引用 2 楼 aotian16 的回复:
问题是进入死循环就运行不了下一个了啊
死循环就运行不了下一个?那它循环的条件是什么?
aotian16 2012-12-10
  • 打赏
  • 举报
回复
引用 3 楼 liuhenghui5201 的回复:
吧数据干到控制台上不行呀。在分析数据。
我现在就是那么干的啊 这样只能一条一条来, 太慢了, 上万的数据呢
liuhenghui5201 2012-12-10
  • 打赏
  • 举报
回复
吧数据干到控制台上不行呀。在分析数据。
aotian16 2012-12-10
  • 打赏
  • 举报
回复
问题是进入死循环就运行不了下一个了啊
zxhcloth 2012-12-10
  • 打赏
  • 举报
回复
可以用走迷宫的思路来重写你这个循环。 循环过的数据做个标记,当下次再循环到这个数据时,可能就是进入到死循环了(当然也不一定),这个时候你可以采取一些措施避免进入死循环,同时记录下这个数据(也就是你说的“我想看看”的那部分数据)。
A18767101172 2012-12-10
  • 打赏
  • 举报
回复
Debug一下
liuhenghui5201 2012-12-10
  • 打赏
  • 举报
回复
不知道 你的代码是什么。看了你的那个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;
			}
		}
	}
}

62,632

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧