JAVA中如何用break跳出双层while循环的内层while循环,我的程序跳不出来呢?

一个求素数的程序:
public class test {
public static void main(String [] args)
{
int i=101,j=2,k=0;
while(i<=200)
{
while(j<i)
{
if(i%j==0)
{k=0;
break;}
k=1;
j++;
}
if(k==1)
{
System.out.println(i);
}
i++;
}
}
}

在你要跳出的循环前面加加上一个标记比如 loop:(注意冒号)
然后判断

break loop;
还有。。你程序谢错了追问

标号加过也不对呀,程序哪里错了呀??

追答

j在第二重循环后子啊重置,在i++;的前面或者后面加上j=2

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-09
不是break没跳出来,是你的程序本身有问题……
①j没有重新赋值
②i%j==0除了可以整除这种情况,还有i=j的时候也是0追问

j++;??????
while(j<i)????
应该可以了吧

追答

第一个问题是你理解错误……
j++是内层循环里的
但是你内层break出来之后没有把j重置,所以你下一次内层while的时候,j就会从i的上一个值开始。但是本来应该是从头再来一次才对。
第二个问题是我没看清楚

第2个回答  2013-08-09
最简单的方式用return
如果考虑下流程,用两个break实现
第3个回答  2013-08-09
你是要跳出2个循环还是跳出内层while而不跳出外层的while?
第4个回答  2013-08-09
用标记可以跳出来
相似回答