java 输出质数条件判断问题

//101~200之内的质数,程序如下
public class Test2 {
public static void main(String[] args) {
int j=1;
for(int i=101;i<=200;i++)
{
boolean f =true;
for(int k=2;k<i;k++){

            if(i % k == 0){
            f = false;
            break;  
            }
        }
        **if(!f){ **   
            continue;
        }
        System.out.println("第"+j+"个质数为:"+i);
        j++;
    }                       
}
}

if中的条件为(!f)的话输出21个质数;

//101~200之内的质数
public class Test2 {
public static void main(String[] args) {
int j=1;
for(int i=101;i<=200;i++)
{
boolean f =true;
for(int k=2;k<i;k++){

            if(i % k == 0){
            f = false;
            break;  
            }
        }
        **if(f = false){ **  
            continue;
        }
        System.out.println("第"+j+"个质数为:"+i);
        j++;
    }                       
}

}

if中的条件为(f=false)的话会输出从101到200一共100个数,求解这是因为什么原因,谢谢

http://blog.163.com/lintianhuanhai@126/blog/static/1655873662012316510061/

老兄,你还没搞懂=和==的区别吧?=是赋值,==才是判断

你写if(f=false) 相当于f=false;if(f)这个效果 当然if判断永远都不会成立

==才是判断 =是赋值