java的for循环语句有点看不懂,求文字解释!!在线等回答。
发布网友
发布时间:2022-05-16 04:03
我来回答
共5个回答
热心网友
时间:2023-10-10 19:31
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 + "是质数");
}
}
}
}
热心网友
时间:2023-10-10 19:31
我运行了一下这个程序,结果如下:
---------- 运行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开始当除数,一直除到这个数自身为止。
热心网友
时间:2023-10-10 19:32
程序确实是输出101-200之间的质数。因为质数有个特点,它除了1和本身,都不能整除,或者说小于自己大于1里面的数都不能整除,for(int j=2;j<i;j++) 这个是表示尝试去整出大于1小于本身的数,i%j就是表示整除的意思,一旦可以整除,则跳出循环(只跳出里面的for循环),设置 f为false, if(!f) continue;不执行该条循环体,继续执行下一条循环体(下面的打印不执行,执行i++的下一条)。所以最后打印的都是不能整除的,也就是质数
热心网友
时间:2023-10-10 19:33
这个循环意思是用 i 来依次除从2到 i-1 之间的数,如果能除尽(即i%j==0)就把f记为false,代表不是质数,break跳出该循环,继续外层的循环。
热心网友
时间:2023-10-10 19:33
中间那个for就是用来判断是否质数的,并为是否后续打印该数做准备工作!!!