簡體   English   中英

基本的if-else語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM