我将尽力清楚地讲清楚我的问题,如果对我的问题没有任何意义,我深表歉意。我对Java还是很陌生(在我的第一个Java类中已经学习了几周)。
我的部分任务是:
“在Invoice类中修改构造函数,因此取决于月份,该日期不大于31、30或28。此外,如果月份无效,因此被强制为0,则也将日期强制为0。”
因此,在我的原始程序中,我将其作为月和日方法:
public void setMonth(int month) {
if(month < 1 || month > 12) //if month is less than 1 and greater than 12 force number to 0
this.month = 0;
else
this.month = month;
}
public void setDay(int day) {
if(day < 1 || day > 31) //if day is less than 1 and greater than 31 force to 0
this.day = 0;
else
this.day = day;
}
因此,我想我会感到困惑的地方是,我是否应该使用“ else if”来确保该日期不超过31、30或28(取决于月份)? (我也不知道Java是否支持'else if'吗?C ++是我最了解的内容)
喜欢:
else if(month = 2 && day > 28)
this.day = 0;
(我知道此代码是不正确的,当我键入它时出现了错误)。您认为对我来说最好的方法是什么,以确保一天不超过31、30或28天(取决于月份)?
最佳答案
else if(month = 2 && day > 28)
this.day = 0;
(我知道此代码是不正确的,当我键入它时出现了错误)。您认为对我来说最好的方法是什么,以确保一天不超过31、30或28天(取决于月份)?
错误不是在
else if
部分中,而是在month = 2
部分中。您实际上是将
2
分配给月份而不是进行比较。使用
month == 2
,您的代码将可以正常工作。