0

今週、if-else ステートメントを使用して問題を解決しようとしていますが、まだエラー メッセージが表示されます。誰が私が間違っているのか教えてもらえますか? if-elseこれは質問ですが、他の方法も高く評価されることを 忘れないでください。

Clunker Motors Inc. は、1995 ~ 1998 年および 2004 ~ 2006 年モデルのすべての車両をリコールしています。変数 modelYear を指定して、RECALLmodelYear の値がこれら 2 つの範囲内にある場合にメッセージを標準出力に出力するステートメントを作成します。

if(modelYear==1995||modelYear==1998)
{
    System.out.println("Recall");   
}
else if(modelYear==2004||modelYear==2006)
{
    System.out.println("Recall");
}
4

4 に答える 4

1

Clunker Motors Inc.は、1995年から1998年および2004年から2006年のモデルイヤーのすべての車両をリコールしています。

これは、[1995、1996、1997、1998]および[2004、2005、2006]のモデルを、これらの年を思い出す必要があることを意味します。

あなたの状態:

if(modelYear==1995||modelYear==1998)

範囲内の2年のみがカウントされることを意味します。[1996年と1997年]のモデルはリコールされません。

両方の範囲を含めるには、次のように実行できます。

if ((modelYear>=1995 && modelYear<=1998) || (modelYear>=2004 && modelYear<=2006))
{
    System.out.println("Recall");
}

また

範囲を確認するには、別のメソッドを作成する必要があります。

boolean isYearWithinRange(int modelYear, int start, int end)
{
    return modelYear>=start && modelYear<=end;
}

if(isYearWithinRange(modelYear, 1995, 1998) || isYearWithinRange(modelYear, 2004, 2006))
{
    System.out.println("Recall");
}
于 2012-10-23T09:16:45.440 に答える
1
if (modelYear==1995||modelYear==1998)

年が 1995 年または1998 年のみの場合を意味します。したがって、1996 年と 1997 年は過ぎません。

ステートメントを次のように置き換えると:

if (modelYear>=1995 && modelYear<=1998)

この場合、1995 年から 1998 年までの範囲を表現しています。このステートメントは、整数 [1995、1996、1997、1998] のみに当てはまります。||論理 OR( ) から論理 AND() への切り替えに注意してください。&&これは、条件式が返されるには、両方の比較チェックが真でなければならないことを意味しますtrue

于 2012-10-23T09:15:22.753 に答える
0

年の範囲を確認する必要があります。あなたが今していることは、正確な年の値をテストすることです

于 2012-10-23T09:15:15.107 に答える
-1
if(modelYear>=1995 && modelYear<=1998)
{
  System.out.println("Recall");   
}
else if(modelYear>=2004 && modelYear<=2006)
{
  System.out.println("Recall");
}
于 2012-10-23T09:15:41.113 に答える