我写的代码是这样的,
但是运行会无限循环1而且有俩个结果,其中一个还是负数。
i是int类型.
int类型取值范围为-2147483648 到 2147483647。
循环中当 i=2147483647时,再i++对i加1,就超出int型取值范围了,
2147483647+1会变成负数 -2147483648, 下次循环i再加1就是-2147483647
,之后循环到0,再之后变回正数,再到2147483647之后又会变成负数 -2147483648 ,周而复始.
你循环条件是i <= 2147483647, 就只有大于2147483647才能结束循环.你永远达不到这个条件就是死循环
解决办法:循环条件改成i < 2147483647
for (int i = 2; i < 2147483647; i++)
或者i改成long int类型.
for (long int i = 2; i <= 2147483647; i++)
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!