不知道 你的代码是什么。看了你的那个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; } } } }
类似于
for
switch
case 1
case 2
case 3在case中会改变for中的循环量i
所以会出现死循环
而且是一个单线程的程序, 所以就停下来了
无法继续下一个
循环过的数据做个标记,当下次再循环到这个数据时,可能就是进入到死循环了(当然也不一定),这个时候你可以采取一些措施避免进入死循环,同时记录下这个数据(也就是你说的“我想看看”的那部分数据)。”这个思路可以做啊,具体要你自己去写。
或者你改变整个业务的实现思路,而不是仅仅盯在for循环这个小区域。
设记录循环次数的变量为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中加了个变量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;
}
}
}
}