java中的for循环是否允许长时间内?如果是,为什么eclipse在放置long值时会显示错误,如果不是,for循环中可以使用的最大值是多少?
答案 0 :(得分:2)
是的,这是允许的。这很好用
for(long l=0;l<Long.MAX_VALUE;l++){
System.out.println(l);
}
答案 1 :(得分:0)
允许,看:
for (long lng = 1L; lng < Long.MAX_VALUE; lng++) {
// your code
}
要查看可分配的最大long
值,您可以使用:
System.out.println(Long.MAX_VALUE);
请注意,在为L
分配值时,我将1
置于文字1L
之后(long
),以避免在尝试分配超出值时出错Integer
范围(如果您尝试将值大于Integer.MAX_VALUE
的值分配给long
类型的变量而不使用长文字(此字面值为大写或小写字母&#39;},则会出现此错误L&#39;数字后面的字符,没有&#39; L&#39;它的整数字面和编译器检查此数字当前是否超出int
范围。 / p>
对于我的示例中1
而言,L
是多余的,因为大于Integer.MAX_VALUE
的数字是必要的。
答案 2 :(得分:0)
没有任何代码我只能猜测,但我假设您正在尝试使用一个太大而无法放入int
文字的值,而您需要long
。
例如:
for(long x = 0; x < 9876543210; x++) {
...
}
此代码将生成The literal 9876543210 of type int is out of range
,因为虽然您将x
定义为long
类型,但您在此处使用的文字被解释为{{ 1}}因此太大了。
要解决此问题,您需要通过在值中附加int
或long
来显式告诉编译器您是指l
字面值(大写L
是首选,因为你可以更好地区分L
):
1