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循环是怎么理解的? 展开
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循环是怎么理解的? 展开
8个回答
展开全部
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 + "是质数");
}
}
}
}
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 + "是质数");
}
}
}
}
展开全部
我运行了一下这个程尘缓如序,结果如下:
---------- 运行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开始当除数哪芦,一直除到这个数自身为止。
---------- 运行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开始当除数哪芦,一直除到这个数自身为止。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序确实是输出101-200之间的质数。因为质数有个特点,它除了1和本身,都不能整除,或者说小于自己大于1里面的数都不能整除,for(int j=2;j<i;j++) 这个是表示尝试升和去整出大于1小于本身的数,蔽笑凳i%j就是表示整除的意思,一旦可以整除,则跳出循环(只跳出里面的for循环),设置 f为false, if(!f) continue;不执行该条循环体,继续执行下一条循环体(下宏旅面的打印不执行,执行i++的下一条)。所以最后打印的都是不能整除的,也就是质数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这正前散个循环意悔团思是用 i 来依次除从2到举氏 i-1 之间的数,如果能除尽(即i%j==0)就把f记为false,代表不是质数,break跳出该循环,继续外层的循环。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
中间那个for就是用来判断是否质数的,并为是否后续打印该数做准备工作!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询