计算int所有正整数的和??

    long sum = 0L;
    final int max = Integer.MAX_VALUE;
    for (int i = 0; i <= max; i++) {
        sum += i;
    }
    System.out.println(sum);

请问这段代码问题在哪??为什么每次cpu100%

由 int 溢出引起的死循环
[code="java"] long sum = 0L;
final int max = Integer.MAX_VALUE;

    for (int i = 0; i <= max; i++) { 
        sum += i; 
        if (i == max){
            // 这里跳出循环,否则 i++ 之后由于发生溢出,
            // i 会变成负数,陷入死循环 
            break;
        }
    }

    System.out.println(sum);[/code]

楼上正解
[code="java"]
long sum = 0L;
final int max = Integer.MAX_VALUE;

    for (int i = max; i > 0; i--) { 
        sum += i; 
    }

    System.out.println(sum);

[/code]
我觉得这样写更好