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
提交
取消