gpt4 book ai didi

java - 为什么这个构造函数没有给我正确的答案

转载 作者:行者123 更新时间:2023-12-02 10:12:38 25 4
gpt4 key购买 nike

我暂时停止编程,我想了解为什么这门课没有给出我期望得到的正确答案:

public class Date
{
private int _day;
private int _month;
private int _year;
public Date(int day, int month, int year)
{
_day=day;
_month=month;
_year=year;
if((day<1||day>31)&&(month<1||month>12)&&(year<1000||year>9999))
{
_day=26;
_month=2;
_year=2019;
}
}
public String toString()
{
return _day+"/"+_month+"/"+_year;
}
public static void main(String[]args)
{
Date test= new Date(5,13,1999);
System.out.println(test.toString());
}
}

当我将值插入“测试”对象时(32,5,1999),它会打印出来2019 年 2 月 26 日。当我插入值 (5,14,1999) 时,它会打印出 5.14.1999,当我将值插入为 (5,6,900) 时,它会打印为 5.8.900。当用户输入非法值时(2019 年 2 月 26 日),为什么我没有获得在构造函数中设置的默认值。谢谢您的回答:)

最佳答案

问题出在 if (...) 语句中,该语句仅在任何参数错误时为您提供默认值。

例如,

(32,5,1999) becomes (TRUE && FALSE && FALSE) = FALSE
(5,6,900) becomes (FALSE && FALSE && TRUE) = FALSE

您可能需要将语句更改为

if(day<1||day>31 || month<1||month>12 || year<1000||year>9999){
...
}

为了在发生错误时获取默认日期

关于java - 为什么这个构造函数没有给我正确的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54894414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com