为什么加等号就输出不出来也不报错?

新手上路,请多包涵

public class For2 {

public static void main(String[] args) {
    for(int i = 101;i <= 200;i += 2) {
        boolean a = true;
        for(int j = 2;j </*=*/ i;j++) {
            if(i % j == 0) {
                a = false;
                break;
            }
            
        }
        if(a) {
            System.out.println(i);
        }
        
        
    }
    
}

}

阅读 3.5k
5 个回答

因为,如果存在j=i这种情况
a肯定为false,所以不会打印出来i
你想想,一个整数,除以自己的余数是什么呢

试试这样

public static void main(String[] args) {
    for(int i = 101;i <= 200;i += 2) {
        boolean a = true;
        for(int j = 2;j </*=*/ i;j++) {
            if(i % j == 0) {
                a = false;
                break;
            }
            if(a) {
                System.out.println(i);
            }
        }
      
    }
    
}
新手上路,请多包涵

同意二楼
把if(a)语句放到第一个if语句下面(里面的for循环内)就可以了。就能加等号了。

j<=i,j的下限是2,上限是i,内循环,当j=i的时候,j%i=0,a被赋值false,内循环结束,if判断false,无输出。
每次外循环,情况都是一样,所以无输出

i += 2很少有这样的写法啊,一般都是i++表示每次加一的意思

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题