为什么不能跳出循环?

qq_35620728 2017-09-15 10:45:23
代码如下:

while(i<100){
x =x*i;
i++;
if(x>Integer.MAX_VALUE){
break;
}
System.out.println("i="+i+"\tx="+x);
}


跳不出循环,一直执行完,为什么?
...全文
228 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿尔法程序狗 2017-09-17
  • 打赏
  • 举报
回复
楼上正解,把x定义为double试一下
jqz0_0 2017-09-16
  • 打赏
  • 举报
回复
我试了一下,好像是数据超过最大值时溢出了,结果为负值,仍然满足条件,所以就一直循环了
qq_35620728 2017-09-16
  • 打赏
  • 举报
回复
我原本是想阶乘超出int范围时跳出循环; 但现在是一直执行100次;
jqz0_0 2017-09-15
  • 打赏
  • 举报
回复
问一下执行结果什么样?定义x和i了吧

50,533

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧