import java.util.Scanner;public class LeapYear { public static void main(String[] args){ Scanner scan = new Scanner(System.in); System.out.println("请输入年份:"); int year = scan.nextInt(); boolean flag = (year%4==0 && year%100!=0) || year%400==0; String str = flag ? year+"是闰年" : year+"不是闰年"; System.out.println(str); }}刚开始学很多地方都不太明白只有请教大神们了,求解释这两条语句如何判断的,尤其是第一条详细点,谢谢大神们了 boolean flag = (year%4==0 && year%100!=0) || year%400==0; String str = flag ? year+"是闰年" : year+"不是闰年";
3 回答
已采纳
望远
TA贡献1017条经验 获得超1032个赞
boolean flag = (year%4==0 && year%100!=0) || year%400==0;
首先这是一个判断是否是闰年的布尔值,分为两种情况(year%4==0 && year%100!=0)表示能被4整除并且不能被100整除的数;或者year%400==0能被400整除的数都表示当前年份是闰年
String str = flag ? year+"是闰年" : year+"不是闰年";
这是一个三目运算符,表示如果flag为真,那么str的值为year+"是闰年" 否则就是 year+"不是闰年"
慕粉3233872
TA贡献70条经验 获得超29个赞
year%4==0:年份除以4的余数为0,就是年份能被4整除;
year%100!=0:年份不能被100整除;
year%400==0:年份能被400整除;
flag的意思就是:年份能被4整除且不能被100整除的为闰年,或者年份能被400整除的为闰年。
str用到一个方法x?A:B,若x=true,输出结果A,若x=false,输出结果B。
添加回答
举报
0/150
提交
取消