本帖最后由 qq84995227 于 2012-11-3 22:13 编辑
for(int x = 10; x <50 ; x++){
boolean flag = true; 要想在X的值为true的时候打印 就得放这里
for (int y =2; y <x ; y++)
{
if (x%y==0 )
{
出了循环 flag就变成false 打印不了X的值 ,
flag = false;
//System.out.print(x+" ");
break ;
}
}
if (flag)
{
System.out.print(x+"是素数");
}
if (x%y==0 ) 的时候falg就等 false;
这时候就会跳到外层循环, 当外层循环要打印X 的时候
你这里
if (flag)
{
System.out.print(x+"是素数");
}
你这里又flag =true; 才打印.
当flag为true的时候, 他在内层不断循环. 而当 if (x%y==0 ) 才会break跳出当前循环 当调出来继续的时候 flag的值已经被你改成fals 就打印不了
然后又进内层去循环. 当进不去这个 if (x%y==0 )的时候 也就是说他不能退出当前循环 他退出当前循环的时候flag的值是false了
明白吗????
|