gpt4 book ai didi

java - 为什么 Integer.MAX_VALUE+1 小于 Integer.MAX_VALUE?

转载 作者:行者123 更新时间:2023-12-01 16:53:17 30 4
gpt4 key购买 nike

我只是想将 1 到 Integer.MAX_VALUE 之间的数字相加,但在输出中我什么也没得到。该计划介于两者之间。下面是我创建的类。

 public class Test {
public static void main(String args[]) {
long sum = 0;
int start_value = 1;
long end_value = Integer.MAX_VALUE;
while(start_value <= end_value){
sum += start_value;
start_value++;
}
System.out.println(sum);
}
}

有人知道为什么会挂起吗?这个计划永远不会完成。

如何解决此类问题?

最佳答案

它永远不应该完成,因为你有一个无限循环。

你的循环是有效的

while(start_value <= Integer.MAX_VALUE) {

但是 Integer.MAX_VALUE 根据定义是最大的,因此它是有效的

while (true) {

您可以更改循环来执行您需要的操作

int start_value = 0;
while(start_value < end_value) {
start_value++;
sum += startValue;
}

这样您就可以在问题失败之前发现问题。

一个迟钝的解决方案可能是

for (int i = 1; i > 0; i++)
sum += i;

i溢出时,这将停止。

关于java - 为什么 Integer.MAX_VALUE+1 小于 Integer.MAX_VALUE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36206643/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com