我不确定这是否真的有效,所以我只是想问并确认,这是否是显示数字的正确方式,以及我是否会得到输出,哪个不同的出生日期。
这个程序有点笨拙。
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++;
}