【发布时间】:2013-10-04 16:05:27
【问题描述】:
来自java文档int has a minimum value of -2,147,483,648 and a maximum value of 2,147,483,647 (inclusive)。
我有一堂课Test.java。
public class Test
{
public static void main(String[] args)
{
int i=2147483647; //max positive value an int can store
for(;;)
{
System.out.println(++i);
}
}
}
据我所知,++i 应该将 i 的值增加 1 并抛出异常,因为在 int 中不允许使用 2147483648。
但是当我在上面运行程序时它会运行(因为无限循环),而不是将值增加到2147483648,分配给i的值是-2147483648,并且值每次递减@ 987654331@.
样例运行(修改类后)
public static void main(String[] args)
{
int i=2147483647;
for(;;)
{
System.out.println(++i);
System.out.println(++i);
System.out.println(++i);
System.out.println(++i);
System.out.println(++i);
break;
}
}
输出:
-2147483648
-2147483647
-2147483646
-2147483645
-2147483644
答案/提示将不胜感激。
【问题讨论】: