问答详情
源自:6-1 什么是数组

Java,这个年份的代码,1900不是闰年,2016是闰年,有点专牛角尖了,哪位大神指点一下啊???

package cap1;
import java.util.Scanner;
public class HelloWorld {
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		System.out.println("请输入:");
		int num=input.nextInt();
		int age1=num%4;
		int age2=num%100;
		int age3=num%400;
    	if(age3==0) {
		System.out.println("该年是闰年");
	}else if(age2==0||age1!=0) {
		System.out.println("该年是闰年");
	}else {
		System.out.println("该年不是闰年");
	}
	}
}


提问者:梓鹏 2018-03-19 19:15

个回答

  • 疏月残影mi
    2018-03-19 19:33:34
    已采纳

    四年一闰,百年不闰,四百年再闰
    (year%4==0&&year%100!=0)||year%400==0 

     else if 里面的条件错了age1和age2互换一下

  • qq_阿省_0
    2018-03-19 19:59:17

    else if(age2==0||age1!=0)

    这个条件有点问题,建议修改为

    else if(age1==0 && age2!=0)

    这样就可以了,也可以更加简单的限定为

     if ((age1==0 && age2!=0 )|| age3 ==0){     
            	System.out.println("闰");        	
            }
            else {
            	System.out.println("不闰");
            }

    一样的道理