求1949到1978之间的闰年

为什么for循环里面if用能被400整除的条件算不出闰年

建议复习一下语文 对于闰年的定义

       int i = 1949;
        boolean flag = false;
        while (i <= 1978){
            if(flag){
                System.out.println(i );
                i += 4;
            }else{
                if((i % 4 == 0 && i % 100 != 0 ) || i % 400 == 0){
                    flag = true;
                    continue;
                }
                i++;
            }
        }


public class A {
    public static void main(String[] args) {

        for(int i = 1949;i <= 1978;i++){
            if(i % 4 == 0 && i % 100 != 0 || i % 400 == 0){
                System.out.println(i);
            }
        }
    }
}

img

例如1976是闰年,但他不能被400整除

判断条件

1、能被4整除,而且不能被100整除
2、能被400整除
3、 && 的优先级高于 ||


public class AleapYear {undefined

public static void main(String[] args) {undefined

System.out.println("请输入年份:");

// 键盘动态输入

Scanner input =new Scanner(System.in);

// 捕捉异常

try {undefined

// 循环读取用户输入的值

while (true){undefined

// 循环读取用户输入的值

int year=input.nextInt();

if (year<1000 || year >9999)

System.out.println("请输入大于1000小于9999的年份");

else if (year %4==0 && year %100 !=0 || year %400==0){undefined

System.out.println(year+"年,是闰年");

}else {undefined

System.out.println(year+"年,是平年");

}

}

}catch (Exception e){undefined

System.out.println("请输入正确年份:");

e.getStackTrace();

}

}

}

有帮助的话采纳一下哦!谢谢!🙈🙈🙈