问题描述
本人JAVA新手,经常有小问题不明白,想拜个师傅,水平高的或者跟我一样菜的都可以,比我高的就学习,跟我差不多的就共同进步。我问的问题不会很烦,都是些简单问题。估计不会超过QQ的聊天框。。。好心人帮帮,谢谢QQ;150090669我的问题:求100到200之间的质数。publicclassZhishu{publicstaticvoidmain(String[]args){for(inti=100;i<200;i++){outer:for(intj=2;j<i;j++){if(i%j==0)breakouter;System.out.println(i);}}}}不是已经breakouter了吗?怎么里面的循环还在做??
解决方案
解决方案二:
不明白你什么意思,你想跳出外曾循环吗?publicstaticvoidmain(String[]args){outer:for(inti=100;i<200;i++){for(intj=2;j<i;j++){if(i%j==0){breakouter;}System.out.println(i);}}}
解决方案三:
不是已经breakouter了吗?怎么里面的循环还在做??你现在的程序是跳到outer那里了,但是外面还有一层循环阿,所以又进去了,你可以debug看看程序是怎么运行的。
解决方案四:
引用2楼kingssman的回复:
不是已经breakouter了吗?怎么里面的循环还在做??你现在的程序是跳到outer那里了,但是外面还有一层循环阿,所以又进去了,你可以debug看看程序是怎么运行的。
outer不就是外面那层循环吗?
解决方案五:
lz的outer是内层循环
解决方案六:
2个循环啊,看清楚outer在哪里
解决方案七:
publicclassZhishu{publicstaticvoidmain(String[]args){outer:for(inti=100;i<200;i++){for(intj=2;j<i;j++){if(i%j==0)breakouter;System.out.println(i);}}}}这样就可以跳出循环了
解决方案八:
请记住:break是跳出本层循环:也就是你定义的outer在{}之间的那层;而上面一层是管不到的.
解决方案九:
引用7楼yxc0433的回复:
请记住:break是跳出本层循环:也就是你定义的outer在{}之间的那层;而上面一层是管不到的.
是这样
解决方案十:
publicclassZhiShu{publicstaticvoidmain(String[]args){//你原来的程序//for(inti=100;i<120;i++){//outer:for(intj=2;j<i;j++){//if(i%j==0)breakouter;//只能退出outer标志的循环啊,即for(intj=2;j<i;j++)//System.out.println(i);//err,每内循环一次,输一次//}//}//我觉的应该这样子写吧for(inti=100;i<200;i++){booleanflage=true;//标志该数是否为质数for(intj=2;j<i;j++){if(i%j==0){flage=false;//不是质数break;}}if(flage==true)//i为质数System.out.println(i);}}}
解决方案十一:
引用3楼KingZChina的回复:
引用2楼kingssman的回复:不是已经breakouter了吗?怎么里面的循环还在做??你现在的程序是跳到outer那里了,但是外面还有一层循环阿,所以又进去了,你可以debug看看程序是怎么运行的。outer不就是外面那层循环吗?
我看错了我以为你写的和楼主的一样