本帖最后由 卜弦 于 2013-10-20 15:46 编辑
- public class InTheLoop {
- public static final int END = Integer.MAX_VALUE;
- public static final int START = END - 100;
- public static void main(String[] args) {
- int count = 0;
- for (int i = START; i <=END; i++)
- {
- count++;
- System.out.println(count);
- }
- }
- }
复制代码 不是没有机会打印,而是一直在打印。你把count++和输出语句都放进循环里面像我这样。你就明白了。
但是这个程序是一个死循环。
如果你把for (int i = START; i <=END; i++)改为i <END就不会是死循环了。
因为,当i=MAX_VALUE时,循环好像是执行最后一次。但实际上i++还会执行,
而此时i=MAX_VALUE+1=0;i 在这一步被赋值为0,所以循环还会继续,所以就一直没输出。 |