将i
的声明放在第3行,以便循环变为无限循环。
public class Puzzel3 {
public static void main(String[] args) {
// Line 3
while (i == i + 1) {
System.out.println(i);
}
System.out.println("done");
}
}
答案 0 :(得分:17)
数学说,无限 + 1 == 无限,所以
// The declaration required
double i = Double.POSITIVE_INFINITY;
// It's infinite loop now...
while (i == i + 1) {
System.out.println(i);
}
System.out.println("done");
答案 1 :(得分:9)
double i=1/0.0;
它将循环无限
答案 2 :(得分:1)
如果循环条件保持为真,则while循环是无限的。由于表达式仅取决于i
,并且未在循环体中分配i
,这相当于首次评估时循环条件为真。
因此,问题是表达式i == i + 1
的哪些类型的值为true。
Java具有以下类型:
+
运算符,但字符串除外,它通过连接“1”而变得更长,因此不能保持相同。+
float
,m&lt; 2 ^ 24。因此,e> 1如果 c> = 2 ^ 25 或 c <= - (2 ^ 25) double
,m&lt; 2 ^ 53。因此,e> 1如果 c> = 2 ^ 54 或 c&lt; = - (2 ^ 54) 那些应该是所有情况: - )