public class SuShu {
public static void main(String[] args) {
boolean flag=false;
for(int i=2;i<100;i++){
for(int j=2;j<i/2;j++){
if(i%j==0){
flag=true;
break;
}
}
if(flag){
System.out.println(i);
}
}
}
}
------解决方案--------------------
请把flag放在第一个for循环内
------解决方案--------------------
flag在循环外了,导致syso之后都会执行
应该是这样
public class SuShu {
public static void main(String[] args) {
for(int i=2;i<100;i++){
boolean flag=false;
for(int j=2;j<i/2;j++){
if(i%j==0){
flag=true;
break;
}
}
if(flag){
System.out.println(i);
}
}
}
}
------解决方案--------------------
这个是根据你的代码写出求质数的,打印出来是对的
public static void main(String[] args) {
for (int i = 2; i < 100; i++) {
boolean flag = true;
for (int j = 2; j <= i / 2; j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if (flag) {
System.out.println(i);
}
}
}
其实是可以优化的