xiangYDW2012 2017-07-09 03:54 采纳率: 0%
浏览 920
已采纳

自己看不出哪里错了,运行的结果和想像的不一样,不知道是怎么回事了。看起来很有趣!

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对兔子

一脸懵逼,为什么会出现这种情况?

  • 写回答

4条回答 默认 最新

  • 战在春秋 2017-07-09 07:00
    关注

    应注意当满足某个条件时循环终止。
    以下代码打死出第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++;
            }
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆