-6

年を取り、うるう年かそうでないかをユーザーに伝えるプログラムを (BlueJ を使用して) 作成する必要があります。年は 1582 年以降でなければなりません。100 で割り切れるが 400 で割り切れない限り、4 で割り切れる年はうるう年です。

ここに私が持っているものがあります:

import java.util.Scanner;
public class IfElseEx2
{
    public static void main(){ Scanner S = new Scanner(System.in);
    System.out.println("Please enter a year");
    int year = S.nextInt();
    if ((year / 400)= 0) {
        System.out.print("That year was not a leap year");
    }
    else if (year<1582){
        System.out.print ("Please enter a year after 1582");
    }
    else if ((year % 4)==0){
        System.out.println("This year was a leap year");
    }
    else if ((year % 4)!= 0){
        System.out.print("This year was not a leap year");
    }
}

どんな助けでも大歓迎です

4

4 に答える 4

2

この行で

if ((year / 400)= 0) {

==代入演算子の代わりに比較演算子を使用する必要があります=。試す

if ((year / 400) == 0) {

さらに、うるう年ではない、100 で割り切れるが 400 で割り切れない1900 年などのケースをカバーする必要があります。

于 2013-07-02T00:23:25.240 に答える
1

GregorianCalendar.isLeapYearメソッドを使用します

于 2013-07-02T03:43:07.387 に答える
0

以下のコードを試して、動作するかどうかを確認してください。コードを変更し、いくつかの条件を追加しました。

import java.util.Scanner;
public class MyTry
{
    public static void main(String[] args){  
    Scanner S = new Scanner(System.in);
    System.out.println("Please enter a year");
    int year = S.nextInt();
    if (year > 1582){

    if (((year%4)== 0) && ((year%100)==0) && ((year%400)==0)) {
        System.out.print("That year was a leap year");
    }
    else if (((year%4)== 0) && ((year%100)==0) && ((year%400)!=0)){
        System.out.println("This year was not a leap year");
    }
    else if ((year%4)== 0){
        System.out.print("This year was a leap year");
    }
    else 
        System.out.print("This year was not a leap year");
    }
    else 
       System.out.print ("Please enter a year after 1582");
    }
}
于 2013-07-02T01:31:21.193 に答える