日期:2014-05-20  浏览次数:21149 次

输出101~200的质数(请问这个if (!f)是什么意思啊?)
Java code
public class Primenumber {
    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.println(i + "  ");
        }
    }
}


------解决方案--------------------
if(!f)
--如果f=false(表示当前i不是质数),则!f就是true,那么执行continue;直接进行下一次for循环,不会执行到打印的那个语句了;如果f=true(表示当前i是质数),则!f就是false,那么不会进入if,从而执行打印的那个语句,输入质数i。
------解决方案--------------------
你这样记就可以了:
f就是f==true的简写
!f就是f==false的简写
如果脑子转不过来的话,你先写成后者,慢慢的就会习惯前者的写法了