2016-10-25 13 views
0

私の割り当てのためにこれをどうやって行うのかと思いました。Javaで次の20年の閏年を印刷する方法

package leapyearsassignment; 

import java.util.Scanner; 

public class LeapYearsAssignment { 
    public static void main(String[] args) { 
     int leapyear; 
     int addyear = 4; 
     int year; 
     Scanner in = new Scanner(System.in); 

     System.out.println("Please enter a year to print the next 20 years."); 
     year = in.nextInt(); 
     System.out.println("You are asking for the leap years starting from " + year + "."); 

     //for loop here? 

    } 

} 

これは私が、私は、ユーザーが望ん年から今後20うるう年印刷する「forループ」を置くことができるだろうか疑問に始めたものです。

EDIT:

package leapyearsassignment; 

public class LeapYearsAssignment { 


    public static void main(String[] args) { 
     int year; 

     for (year = 2016; year <= 2092; year = year +4) { 
      System.out.println(year);} 

    } 

} 

しかし、その代わりに2016年の、私は、ユーザーwanted.I'mは、プログラミングにかなり新しいとほんの数ヶ月前に始まった年にしたい:これは私が前に作ったコードです;正確には9月。

+0

4年ごとにうるう年があり、入力年から最初のうるう年までの最大「距離」は3年です。だから、何年に渡ってループする必要がありますか? – ControlAltDel

答えて

0

(不規則なうるう年のために正しく占める)これを実行する1つの方法は次のとおりです。

  • ループで
  • を印刷うるう年の数をカウントするカウンタ変数を使用します。
    • "year"がうるう年かどうかをテストする
      • うるう年の場合は、カウンタをインクリメントして年を印刷します。
      • public static boolean isLearYear(int year) { 
            return year % 4 == 0 & (year % 100 != 0 || year % 400 == 0); 
        } 
        
        :カウンタが20に達した
      • 場合は、増分年、
      • それ以外の場合はループを切断し、年がうるう年であるかどうかを確認するには

をループし続ける、あなたは、このメソッドを使用することができます

(これにより、年が4で割り切れるかどうかがチェックされ、100年ごとにでない特別な例外が考慮されます。閏年ar、しかし400回ごとに再びうるう年です)。

関連する問題