java循环的小问题!

来源:百度知道 编辑:UC知道 时间:2024/06/24 18:24:38
public class x{
public static void main(String arge[]){
int a=0;
for(int b=10;b<=25;b++){
for(int c=2;c<b;c++){
if(b%c==0){
a=1;
break;
}
}
if(a==0){
System.out.println(b);
}
}
}
}

问下上边的程序输出是:press anykey to continue...
public class x{
public static void main(String arge[]){
int a=0;
for(int b=10;b<=25;b++){
a=0;
for(int c=2;c<b;c++){
if(b%c==0){
a=1;
break;
}
}
if(a==0){
System.out.println(b);
}
}
}
}而这个程序只是多了个啊。就可以了,我是想求10到25之间的质数,为什么加上a=0;就可以了,上边int a=0;不是给赋值了吗?
请教下!

第一次做循环,b=10,c=2,能整除,b%c是等于0的,所以a=1
这时做第二次循环,如果不把a重新置为0的话,a的值就永远是1了。

break跳出了第二个for循环语句,但仍在第一个循环语句中,所以第一个程序赋值a为1,以后a就为1,而后一个程序,每次跳出来,重新置a为0