当前位置: 代码迷 >> Eclipse >> 这段程序错在哪里?解决方法
  详细解决方案

这段程序错在哪里?解决方法

热度:25   发布时间:2016-04-23 00:56:52.0
这段程序错在哪里??
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);
}
}
}

其实是可以优化的
  相关解决方案