小弟刚初学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),直接进入下次循环