我正在努力解决这个问题.检查这是否真的有效



我不确定这是否真的有效,所以我只是想问并确认,这是否是显示数字的正确方式,以及我是否会得到输出,哪个不同的出生日期。

这个程序有点笨拙。

    int day = 0;
    int month = 00;
    int year = 1979;
    while(day<33 && month<14 && year<2005 && year>1978)
    {
        if(day==32)
        {
            day = 0;
        }
        if(month==13)
        {
            month = 00;
        }
        if(year==2004)
        {
            year = 1979;
        }
        String dob = new String(day+""+month+""+year);
        System.out.println(dob);
        if(dob=="2611983")
        {
            System.out.println("My birthday");
            break;
        }
        day++;
        month++;
        year++;
    }

运行它时会发生什么?一些预测:它不会做你可能期望的,因为你在同一循环运行中递增日、月和年。它也将永远循环,因为您在循环中重置日、月和年。经过很多循环,它可能会碰到一个星座,你的生日已经到来,但不像想象的那样。让它运行并尝试了解会发生什么。

这不会正常工作,因为您同时增加日、月和年(即您没有检查所有的日子(,而是尝试这样做:

int day = 1;
int month = 1;
int year = 1979;
bool done=false;
while(!done)
{
 if(year==2004)
 {
        year = 1979;
 }
 while (month<13 && !done)
 {
    while (day<32 && !done)
    {
        String dob = new String(day+""+month+""+year);
        System.out.println(dob);
        if(dob.equals("2611983"))
        {
         System.out.println("My birthday");
         done=true;
        }
        day++;  
    }
    day=1;
    month++;    
 }
    month=1;
    year++;
}

最新更新