public class Example {
public static void main(String[] args){
int x=1,y=1,i=1,temp;
while(i>0){
System.out.println("第"+i+"个月有"+(x+y)+"对兔子");
temp=y;
y=x+y;
x=temp;
i++;
}
}
}
编译结果:
第107505个月有869034217对兔子
第107506个月有-192434320对兔子
第107507个月有676599897对兔子
第107508个月有484165577对兔子
第107509个月有1160765474对兔子
第107510个月有1644931051对兔子
第107511个月有-1489270771对兔子
第107512个月有155660280对兔子
第107513个月有-1333610491对兔子
第107514个月有-1177950211对兔子
第107515个月有1783406594对兔子
第107516个月有605456383对兔子
第107517个月有-1906104319对兔子
第107518个月有-1300647936对兔子
第107519个月有1088215041对兔子
第107520个月有-212432895对兔子
第107521个月有875782146对兔子
第107522个月有663349251对兔子
第107523个月有1539131397对兔子
第107524个月有-2092486648对兔子
第107525个月有-553355251对兔子
第107526个月有1649125397对兔子
第107527个月有1095770146对兔子
第107528个月有-1550071753对兔子
第107529个月有-454301607对兔子
一脸懵逼,为什么会出现这种情况?
应注意当满足某个条件时循环终止。
以下代码打死出第1到第12个月的结果:
public static void main(String[] args) {
int x = 1, y = 1, i = 1, temp;
while (i < 13) { //当 i = 13时不满足条件,退出循环。
System.out.println("第" + i + "个月有" + (x + y) + "对兔子");
temp = y;
y = x + y;
x = temp;
i++;
}
}
你这是作死写法,都没有中断循环,变死循环了
死循环. i>0 i初始赋值=1 , 然后不停的还++....
这问题你解决了么,如果想看前面的,你可以做一个跳出,比如当i==1000的时候,break,说不定你就能看到前面的月份了