2016-04-12 22 views
-2

最近、Javaで始まったばかりの私は、1年が閏年かどうかを教えてくれる短いスクリプトを作成したかったのです。しかし、今では私のコードは常にブール値のtrueを返しています。私は何を間違えたのですか?Java:ブール値は常にtrueを返す

public class Schaltjahr { 
public static void main(String[] args) { 
    int year; 
    boolean leapyear; 
    int a,b,c; 

    year = Integer.parseInt(JOptionPane.showInputDialog("Insert a year: ")); 

    a = (year % 4); 
    b = (year % 100); 
    c = (year % 400); 

    if (c == 0) { 
     leapyear = true; 
    } else { 
     if (b == 0) { 
      leapyear = false; 
     } else { 
      if (a== 0) leapyear = true; 
     } 
    } 

    if (leapyear = true) { 
     JOptionPane.showMessageDialog(null, "The year " + year + " is a leapyear."); 
    } else { 
     JOptionPane.showMessageDialog(null, "The year " + year + " is not a leapyear."); 
    } 
} 
} 

ご回答ありがとうございます。

+2

ようこそスタックオーバーフロー。コードをインデントするために少しの努力を払うことができますか?現時点では読むのは難しいです。次に、実際に使用している年がわからないことを意味するオプションペインを表示するのではなく、単にハードコードするのはなぜですか?そして、あなたは正確な問題を簡単に再現することができます。 –

+3

'if(leapyear = true)'は 'if(leapyear == true)'または 'if(leapyear)'でなければなりません。 – resueman

+2

[False boolean = True?](http://stackoverflow.com/questions/7883502/false-boolean-true)の重複が考えられます。 – rgettman

答えて

0

等価(==)の代わりに代入(=)を使用しています。 booleanでequals演算子を使用しないでください。ちょうどif (leapYear) {と言ってください。

+1

オススメとしてクローズするか、適切な複製を見つけるために投票してください。あなたは前にこれをやった。 – Savior

+0

閉じる投票ダイアログの代わりに回答ダイアログを使用しています。投票に参加して、他の人には役に立たない質問を閉じてください。 –

1

if(leapyear == true)の条件文への代入を変更します。

関連する問題