若要利用if-else語句判斷year是否閏年,是閏年則傳回1,不是閏年則傳回0。以下選項中不能完成正确判斷的程式段是()。
A)if(year%400==0) return 1;
else if(year%100!=0)
if(year%4==0) return 1;
else return 0;
B)if(year%400!=0)
if(year%100==0) return 0;
else if(year%4==0) return 1;
else return 0;
else return 1;
C)if(year%100==0)
if(year%400==0) return 1;
else return 0;
else if(year%4==0) return 1;
else return 0;
D)if(year%4!=0) return 0;
else if(year%400==0) return 1;
else if(year%100==0) return 0;
else return 1;
答案選擇A,因為沒有考慮到year%100==0 這種情況:
具體分析:
首先滿足閏年的條件有2個滿足其中一條即可。
1.能被400整除
2.能被4整除,缺不能被100整除。
知道條件以後,我們再來看A選項具體代碼
if(year%400==0) return 1;
else if(year%100!=0)
if(year%4==0) return 1;
else return 0;
這個代碼的編寫是沒有問題的,隻是漏了一種情況year%100==0 這種情況,即加上if(year%100==0) return 0;便可。
舉例,當year=100時,首先不滿足year%400==0,其次不滿足year%100!=0,在這段程式中,要滿足return 0;必須year%100==0,year%4==0,顯然條件是無法達成的。