import javax.swing.JOptionPane;
int year;
boolean is_leap_year(int year)
{
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
return true;
else
return false;
}
void setup()
{
String answer = JOptionPane.showInputDialog("Enter a year or a negative number to test");
year = Integer.parseInt(answer);
while (year > 0) {
boolean b = is_leap_year(year);
if (b == true) {
println(year + " is a leap year");
}
else{
println(year + " is Not a leap year");
answer = JOptionPane.showInputDialog("Enter a year or a negative number to test");
year = Integer.parseInt(answer);
}
}
}
入力がうるう年かどうかを調べる関数is_leap_yearを作成しました。ただし、プログラムは1つのエラーに基づいて実行されません。処理中のセットアップで関数を呼び出す
(3行目) "このメソッドは、ブール型の結果を返す必要があります。"
ヘッダーに関数型としてブール値を入れているので、私はすでにそれをしていませんか? if文のブロックとしてtrueを返します。
また、セットアップから関数を適切に呼び出すことができるかどうかはわかりません。私は何かが足りないように感じます。
任意の明確化が認められるであろう。
編集:(行7と8)私はそれを完成させ、elseを追加してfalseを返します。 何らかの理由で、2000を入力したときに "2000年が閏年です"と表示された後、処理がクラッシュします。無限ループが起こっていますか?どうすれば修正できますか?
あなたのメソッドは、うるう年でない値に対してどのような値を返しますか? –
ああ、私はそれについて完全に忘れてしまった。私はelse()がfalseを返すべきだと思います。 –
@ PM77-1ねえ、私はfalseを返すためにelse文を入れましたが、複数の行を印刷した後に処理がクラッシュしています。何かの無限ループがありますか? –