【发布时间】:2010-12-29 20:04:39
【问题描述】:
给出以下代码示例:
public class WeirdStuff {
public static int doSomething() {
while(true);
}
public static void main(String[] args) {
doSomething();
}
}
这是一个有效的 Java 程序,虽然方法 doSomething() 应该返回一个 int 但从不返回。如果你运行它,它将以无限循环结束。如果你将 while 循环的参数放在一个单独的变量中(例如 boolean bool = true),编译器会告诉你在这个方法中返回一个 int。
所以我的问题是:这是否在 Java 规范中的某个地方,是否存在这种行为可能有用的情况?
【问题讨论】:
-
难道你不需要在
while(true);之后加上return 0;(或等效的),只是为了让编译器满意吗?我知道我曾经抱怨过 Java 方法之前没有返回正确的类型。 ...话虽如此,我完全可以看到这是一个编译程序。 -
非常有趣...我很惊讶它居然编译了。
标签: java loops while-loop