我将尽力清楚地讲清楚我的问题,如果对我的问题没有任何意义,我深表歉意。我对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,您的代码将可以正常工作。

07-24 09:45
查看更多