java的for循环语句有点看不懂,求文字解释!!在线等回答。

publicclassyes{publicstaticvoidmain(String[]args){for(inti=101;i<200;i+=2){booleanf=t... public class yes{
public static void main(String []args){
for(int i=101;i<200;i+=2){
boolean f=true;
for(int j=2;j<i;j++){
if(i%j == 0){
f=false;
break;
}
}
if(!f) continue;
System.out.print(" "+i);
}
}
}
/*这部分不理解
for(int j=2 ; j<i ; j++){
if(i%j == 0){
f=false;
break;
}*/
这个程序是输出101到20之间的质数。程序的第二个for循环不理解,我理解是这样的:先是101/2,因为不能整除,所以直接输出。在接着是103/3、105/4、107/5.....129/16,到了129/16,不是不能被整除嘛,为什么运行的时候输出了129?
中间那个for循环是怎么理解的?
展开
 我来答
百度网友3ce83a3
2013-11-29 · 超过20用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:41万
展开全部
for(int j=2 ; j<i ; j++){//拆颤质数是指只能被自身和1整除的数,所以从2开始循环
if(i%j == 0){//i是101开始到200的数,循环的去除以2-小于自身-1的数,例如:101就是除以2,3,4...100,在这中间,如果有被整出,那么这个书就不是质数,所以,令f= false
f=false;
break;
}*/

我给你一个我回答过的找质数的程序:

public class Test {
public static void main(String[] args) {
//循环1000以内的数
for (int n=2;n<=1000;n++){
//给b初始值true
boolean b = true;
//如果循环拿到的数n不等于1,就进入下面循环
if (n != 1 ){
//i从大于1的第一个数也就是2开始,一次循环到比这个数n本身小的最大的数
//何余键为质数,除了1和他本身不能再被其他数整除。所以...这样循环
for (int i = 2; i < n; i++){
if (n % i == 0){//如果取余为0,也就是除了1和其本身有其他数可以乘除他,所以置为false
b = false;
//跳出当前循环,判断是否打印,并旅毁败且到外面循环继续
break;
}

}
}
//如果b为true打印下面的质数
if (b){
System.out.println(n + "是质数");
}
}
}
}
hdparrot
2013-11-29 · TA获得超过2402个赞
知道小有建树答主
回答量:1385
采纳率:0%
帮助的人:1137万
展开全部
我运行了一下这个程尘缓如序,结果如下:
---------- 运行JAVA ----------
101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
输出完成 (耗时 0 秒) - 正常终止
这里面也没有129啊

另外,你理解的不对,这是双重循环的程序,从派启101开始,每个数执行了第二个for循环,也就是都从2开始当除数哪芦,一直除到这个数自身为止。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无成不归
2013-11-29 · TA获得超过192个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:80.1万
展开全部
程序确实是输出101-200之间的质数。因为质数有个特点,它除了1和本身,都不能整除,或者说小于自己大于1里面的数都不能整除,for(int j=2;j<i;j++) 这个是表示尝试升和去整出大于1小于本身的数,蔽笑凳i%j就是表示整除的意思,一旦可以整除,则跳出循环(只跳出里面的for循环),设置 f为false, if(!f) continue;不执行该条循环体,继续执行下一条循环体(下宏旅面的打印不执行,执行i++的下一条)。所以最后打印的都是不能整除的,也就是质数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
陈哥深惠通勤
2013-11-29 · TA获得超过1175个赞
知道小有建树答主
回答量:1909
采纳率:33%
帮助的人:822万
展开全部
这正前散个循环意悔团思是用 i 来依次除从2到举氏 i-1 之间的数,如果能除尽(即i%j==0)就把f记为false,代表不是质数,break跳出该循环,继续外层的循环。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangxuelei_
2013-11-29
知道答主
回答量:58
采纳率:0%
帮助的人:17.3万
展开全部
中间那个for就是用来判断是否质数的,并为是否后续打印该数做准备工作!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式