if、else if和else语句?JAVA

if、else if和else语句?JAVA,java,if-statement,constructor,Java,If Statement,Constructor,我将尽我最大的努力把我的问题说清楚,如果我的问题没有道理,我很抱歉,我对java还是很陌生(我第一次上java课已经有几个星期了) 我的部分任务是: 修改Invoice类中的构造函数,使日期不大于31、30或28,具体取决于月份。此外,如果月份无效,因此强制为0,也强制为0 因此,在我最初的程序中,我将此作为我的月和日方法: public void setMonth(int month) { if(month < 1 || month > 12) //if month is less

我将尽我最大的努力把我的问题说清楚,如果我的问题没有道理,我很抱歉,我对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;
}
(我知道这段代码是不正确的,在我打字时它有一个错误)。你认为对我来说,什么是确保一天不超过31天、30天或28天(取决于月份)的最佳方式

另外,我不确定Java是否支持“elseif”

Java也非常支持它。

if(day < 1 || day > 31) 
    this.day = 0;
else
    this.day = day;
}
=
用于赋值,
=
用于比较,需要使用
=
进行比较

 else if(month == 2 && day > 28)
    this.day = 0;
另外,我不确定Java是否支持“elseif”

Java也非常支持它。

if(day < 1 || day > 31) 
    this.day = 0;
else
    this.day = day;
}
=
用于赋值,
=
用于比较,需要使用
=
进行比较

 else if(month == 2 && day > 28)
    this.day = 0;
(我知道这段代码不正确,在我输入时出错了)。你认为对我来说,什么是确保一天不超过31天、30天或28天(取决于月份)的最佳方式

错误不在
else if
部分,而是在
month=2
部分。 实际上,您将
2
分配给月份,而不是比较月份

使用
month==2
,您的代码就可以正常工作了

(我知道这段代码不正确,在我输入时出错了)。你认为对我来说,什么是确保一天不超过31天、30天或28天(取决于月份)的最佳方式

错误不在
else if
部分,而是在
month=2
部分。 实际上,您将
2
分配给月份,而不是比较月份


使用
month==2
,您的代码将正常工作。

非常感谢大家!知道我没有在代码中加两个等号,我真的觉得很傻!很抱歉犯了这么简单的错误

else if (month == 2 && day > 28)
    this.day = 0;
else if (month == 4 || month == 6 || month == 9 ||  month == 11 && day > 30)
    this.day = 0;

这就是我最后所做的,一切都很完美!非常感谢

非常感谢大家!知道我没有在代码中加两个等号,我真的觉得很傻!很抱歉犯了这么简单的错误

else if (month == 2 && day > 28)
    this.day = 0;
else if (month == 4 || month == 6 || month == 9 ||  month == 11 && day > 30)
    this.day = 0;

这就是我最后所做的,一切都很完美!非常感谢if(1)不起作用。您可以使用else if,但它不会有效。改为使用java日历并使用它。1。java支持else if。2.在您共享的代码中:else如果(month=2&&day>28),month被分配了一个值,请注意我们通常面临的这个编程错误,因为在这里,您试图进行比较,而不是分配。您可以创建一个包含12个元素的数组,每个元素的天数为每月。这样你就可以避免一些
if
s。(我假设您不关心闰年。)您可以使用
日历
日期
对象检查传递的日期是否有效。检查是否在C++中支持java,就像C++一样。但是,请注意,
if(1)
不起作用。您可以使用else if,但它不会有效。改为使用java日历并使用它。1。java支持else if。2.在您共享的代码中:else如果(month=2&&day>28),month被分配了一个值,请注意我们通常面临的这个编程错误,因为在这里,您试图进行比较,而不是分配。您可以创建一个包含12个元素的数组,每个元素的天数为每月。这样你就可以避免一些
if
s。(我假设您不关心闰年。)您可以使用
日历
日期
对象检查传递的日期是否有效。检查@T.J.Crowder我没有抓住你你似乎抓住了我,因为你已经解决了它。:-)@T.J.Crowder我没抓住你你似乎抓住了我,因为你已经把它修好了。:-)