求101-200之间的质数
我的程序是这样的:
public class Testzhishu
{
public static void main(String[] args)
{
for(int i=101;i<200;i+=2)
{
boolean b=true;//如果把这条语句放到main里,for的外面,结果会不一样,请问为什么??谢谢
for(int j=2;j<i;j++)
{
if(i%j==0)
{
b=false;
break;
}
}
if(!b){continue;}
System.out.println("101-200内的质数是:"+i);
}
}
}
我的程序是这样的:
public class Testzhishu
{
public static void main(String[] args)
{
for(int i=101;i<200;i+=2)
{
boolean b=true;//如果把这条语句放到main里,for的外面,结果会不一样,请问为什么??谢谢
for(int j=2;j<i;j++)
{
if(i%j==0)
{
b=false;
break;
}
}
if(!b){continue;}
System.out.println("101-200内的质数是:"+i);
}
}
}
{
public static void main(String[] args)
{
for(int i=101;i<200;i+=2)
{
boolean b=true;//如果把这条语句放到main里,for(int i....) 的外面,结果会不一样,请问为什么??谢谢 for(int j=2;j<i;j++)
{
if(i%j==0)
{
b=false;
break;
}
}
if(!b){continue;}
System.out.println("101-200内的质数是:"+i);
}
}
}
for (int i = 101; i < 200; i += 2) {
boolean b = true; for (int j = 2; j < i; j++) {
if (i % j == 0) {
b = false;
break;//即使你在这里brack了,只是跳出里面的for,外面的for再次执行的时候b还是true,假如放在外面,只要一次设成false,就一直false
}
}
if (!b) {
continue;
}
System.out.println("101-200:" + i);
}
你的所有程序都是在for循环里执行的,
我想楼主还没有怎么理解这个程序具体的执行流程,
多练练就好了.
当b在for外面时,你只创建了一个b,并初始化为true。在if(i%j==0)中,b可能被修改为false,也可能不变。如果b=false,
那下次循环时如果不做修改,b仍是false。看出区别了吗?