package com.xia.test;
//判断101-200之间有多少个素数,并输出所有素数。素数为一个大于1的自然数,除了1和它本身外,不能被其他自然数整除
public class Demo {
public static void main(String[] args) {
int count = 0;
for(int i=101;i<200;i+=2){
boolean a=false;
for(int j=2;j<=Math.sqrt(i);j++){
if(i%j==0){
a=false;
break;
}else{
a=true;
}
}
if(a==true){
count++;
System.out.print(i+" \t ");
}
}
System.out.println("\n 101-200之间素数个数为:"+count);
}
}
基础不好,过程中遇到个问题,把if(a==true)写成了if(a=true),少了一个等号,导致结果出错,=赋值,==表判断,改正后正确。百度中发现有人问if(a==true)和if(true==a)有什么区别?发现我出的错正好是这个问题的区别所在。其区别在于项目中推荐使用true==a,是为了防止漏写一个=号,做这种判断时定值放在前面少写=号会报编译错,而反过来写就不会,导致结果出错后还不容易调试出来。在写代码的时候为了避免手误,把“==”(判等)敲成“=”(赋值)引起错误,推荐采用 if(常量 == 变量) 的模式。但这个模式一般不用在 java 中,而是在 C++ 或 c 中。因为 java 中如果用IDE的话,会直接给出提示,没有用IDE也会在编译时报错。