本周我正在接受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");
}
答案 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");
}