最近、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.");
}
}
}
ご回答ありがとうございます。
ようこそスタックオーバーフロー。コードをインデントするために少しの努力を払うことができますか?現時点では読むのは難しいです。次に、実際に使用している年がわからないことを意味するオプションペインを表示するのではなく、単にハードコードするのはなぜですか?そして、あなたは正確な問題を簡単に再現することができます。 –
'if(leapyear = true)'は 'if(leapyear == true)'または 'if(leapyear)'でなければなりません。 – resueman
[False boolean = True?](http://stackoverflow.com/questions/7883502/false-boolean-true)の重複が考えられます。 – rgettman