2012-09-18 28 views
0

我已經編寫了一個用於測試閏年的代碼,但希望添加一個修改以指示它是否過去。爲此,我添加了一個條件,如果輸入發生在2012年或更長時間,那麼現在時態證明是真實的,否則它假定過去時態。就其本身而言,它忽略了此限定符,只是執行第一條語句。任何幫助完成這一點,將不勝感激。Java編程幫助:If語句方向的問題

下面的代碼

{ 
    int input; 

    System.out.println("Enter year:"); 
    Scanner keyboard = new Scanner(System.in); 
    input = keyboard.nextInt(); 

    while (input >= 2012){ 

    if ((input%4==0) && input%100!= 0) 
    { 
     System.out.println(input + " is a leap year."); 
    } 
    else if (input%400==0) 
    { 
     System.out.println(input + " is a leap year."); 
    } 
    else 
    { 
     System.out.println(input + " is not a leap year."); 
     } 
} 
    while (input < 2012){ 

    if ((input%4==0) && input%100!= 0) 
    { 
     System.out.println(input + " was a leap year."); 
    } 
    else if (input%400==0) 
    { 
     System.out.println(input + " was a leap year."); 
    } 
    else 
    { 
     System.out.println(input + " was not a leap year."); 
    } 
} 

} 
} 
+1

你的while循環永遠不會完成 –

回答

0

指出,我覺得你錯了這裏 - 的whileif (input >= 2012)
if (input <= 2012)

0

while (input >= 2012)
使用if而是我覺得你真的不知道什麼while循環是給。這是一個循環,意味着它重複,直到條件不滿足。舉例:

x=10 
while(x!=0){ int dosomething = 1; x--} 

該循環重複10次。所以簡單地將你的while改爲if和代碼應該工作得很好。

+0

並記住你需要一種方法來退出這個循環(在這種情況下它是x--) –