【java】「小马哥每日一问」2019.07.09 期

问题描述

public class Loopy {

public static void main(String[] args) {

final int start = Integer.MAX_VALUE - 100;

final int end = Integer.MAX_VALUE;

int count = 0;

for (int i = start; i <= end; i++)

count++;

System.out.println(count);

}

}

以上程序输出内容是?

(a) 100
(b) 101
(c) 以上都不是
(d) 99

注:每期的「小马哥每日一问」将累计在「小马哥技术周报」 直播中解答

回答

C。 在i=end的时候进入循环后 i++后,就会一直满足 <=end

我选C
因为两短一长选最长

【java】「小马哥每日一问」2019.07.09 期

选C,IDEA好智能啊= =

c, i<=end 永远成立

c,楼上+1

C, i<=end is always true

C,
因为Integer的底层使用的是补码,补码第一位是符号。

选择 c i的值无法超过Integer.MAX_VALUE i增加到后面会变成负数,永远比最大值小。

C,因为i不会超过integer的最大值。

c 永远不会大于max value

把end 换成 Integer.Max_VALUE i 属于int 所以 i <= end is always 'true'

选c。Integer.Max_VALUE + 1会变成Integer.Min_VALUE,循环会一直循环下去。

选c,之前周报里分享过。。

以上是 【java】「小马哥每日一问」2019.07.09 期 的全部内容, 来源链接: utcz.com/a/72159.html

回到顶部