小弟刚初学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);
}
}
}
这是一个输出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);
}
}
}
System.out.print(" " + i);
}当f为true时,i是质数,!f为假,不会执行continue,会跳到System.out.print(" " + i);当f为false时,i不是质数,!f为真,不会执行System.out.print(" " + i),直接进入下次循环
楼主的程序,把 if(!f) 写成 if(f==false)可以的啊,怎么不行?
汗,我发现了,是我改 (f == false)的时候,少写一个等于号,怪不得试出来结果不一样了,我想呢怎么就不一样了