小弟刚初学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);
      }
   }
}

解决方案 »

  1.   

    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),直接进入下次循环
      

  2.   

    "也就是if (!f) 为啥写成 if (f == false)不行?"
    楼主的程序,把 if(!f) 写成 if(f==false)可以的啊,怎么不行?
      

  3.   


    汗,我发现了,是我改 (f == false)的时候,少写一个等于号,怪不得试出来结果不一样了,我想呢怎么就不一样了