不支持Java for循环类型

时间:2014-09-23 16:17:31

标签: java for-loop syntax-error long-integer

我试图做一些Project Euler问题,其中涉及前5个素数的特殊可分性要求的pandigital数字,并认为这将是起点(见1023456789是第一个被查看的数字,和9876543210)是最后一个)。

    import java.util.*;
    public class pandigital_special 
    {
        public static void main (String args[])
        {
            for (long l = 1023456789; l <= 9876543210; l++)
            {

            }
        }
    }

有谁能告诉我为什么编译器声称for循环只支持整数?我从来没有听说过这个。也就是说,编译器说“int类型的文字9876543210超出范围”。

3 个答案:

答案 0 :(得分:2)

您的代码运行正常。唯一的问题是你的第二个数字(9876543210)超出了int范围,但你使用的是int literal。

要使用长文字,只需在数字的末尾附加一个L:

9876543210L

这是一个更完整的例子:

public class Test {
    public static void main(String[] args){
        for (long l = 1023456789L; l <= 9876543210L; l++){
            System.out.println(l);
        }
    }
}

答案 1 :(得分:0)

在你的for循环中

for (long l = 1023456789; l <= 9876543210; l++)

您的号码9876543210太大,无法将其更改为

9876543210L

更新的代码将如下所示

for (long l = 1023456789; l <= 9876543210L; l++)

答案 2 :(得分:0)

我认为你必须有一个L来声明它是一个很长的,像这样:

long l = 1023456789L