读书人

想不通一些关于循环的有关问题(初学)

发布时间: 2012-05-09 12:13:59 作者: rapoo

想不通一些关于循环的问题(初学)
小弟刚初学java,在看视屏教程,看到一个实在想不通的地方,可能是很弱智问题,请大大耐心看看,谢谢
这是一个输出101 到 200内的质数小程序
我想问的是 红色字体 也就是if (!f) 为啥写成 if (f == false)不行?
如果,是f的反,不就是内部那个for循环终止,也就是f值变为false的情况,continue掉该数,然后大外部循环再抽下个数继续循环这样子嘛?

public class test {
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);
}
}
}

[解决办法]
f是一个标志,当他被设置为true时表示i是质数,当被设置为false是表示不是质数,

是质数就输出,不是就不输出,所以就有这句:

if (!f) {continue;}
System.out.print(" " + i);
}

当f为true时,i是质数,!f为假,不会执行continue,会跳到System.out.print(" " + i);

当f为false时,i不是质数,!f为真,不会执行System.out.print(" " + i),直接进入下次循环

读书人网 >J2SE开发

热点推荐