基本的if-else语句

时间:2012-10-23 09:10:06

标签: java if-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");
}

4 个答案:

答案 0 :(得分:1)

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

表示年份仅为1995年。所以1996年和1997年都不会过去。

如果您将语句替换为:

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

然后你表达的是1995年到1998年之间的范围。这种说法仅适用于整数[1995,1996,1997,1998]。请注意从逻辑OR(||)切换到逻辑AND(&&),这意味着对于条件表达式返回true,两个比较检查都必须为真。

答案 1 :(得分:1)

  

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");
}

OR

您应该创建一个单独的方法来检查范围:

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");
}

答案 2 :(得分:0)

您需要检查年份范围。你现在正在做的是测试确切的年份

答案 3 :(得分:-1)

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