[英]the basic if-else statement
我本周要執行if-else語句,並且試圖解決問題,但仍然收到錯誤消息。 誰能告訴我我在做什么錯? 請記住,這是一個if-else
問題,但其他方法也將不勝感激。
Clunker Motors Inc.正在召回1995-1998年和2004-2006年的所有車型。 給定變量modelYear,編寫一條語句,如果modelYear的值落在這兩個范圍內,則將消息
RECALL
打印到標准輸出。
if(modelYear==1995||modelYear==1998)
{
System.out.println("Recall");
}
else if(modelYear==2004||modelYear==2006)
{
System.out.println("Recall");
}
if (modelYear==1995||modelYear==1998)
表示年份是1995年還是 1998年。 因此1996年和1997年將不會過去。
如果將語句替換為:
if (modelYear>=1995 && modelYear<=1998)
那么您表示的范圍是1995年到1998年之間。 該語句僅對整數有效[1995,1996,1997,1998]。 請注意,從邏輯OR( ||
)切換到邏輯AND( &&
),這意味着兩個比較檢查都必須為true,條件表達式才能返回true
。
Clunker Motors Inc.正在召回1995-1998年和2004-2006年的所有車型
這意味着應該回顧[1995、1996、1997、1998]和[2004、2005、2006]的模型。
您的情況:
if(modelYear==1995||modelYear==1998)
表示僅計算了兩年范圍。 [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");
}
您需要檢查年份范圍 。 您現在正在做的是測試確切的年份值
if(modelYear>=1995 && modelYear<=1998)
{
System.out.println("Recall");
}
else if(modelYear>=2004 && modelYear<=2006)
{
System.out.println("Recall");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.