我正努力工作,就此而言。检查这是否真的有效?

时间:2017-03-17 14:29:49

标签: java confirmation

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

这个程序有点笨拙。

    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++;
    }

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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++;
}