为什么不循环在其条件下需要长时间作为有效类型?

时间:2015-02-26 22:41:52

标签: java loops netbeans long-integer

我正在进行一些Project Euler练习,需要使用非常大的数字。 我仍然需要使用一些基本循环,如for-loops或while循环。

我的IDE,Netbeans,给了我一个我无法解决的错误。

    long l = 10000000000L;
    while (l<10000000000000){

    }
    for (long k =0;k<10000000000000;k++){

    }

在两个循环中,我得到了评论:&#34;整数过大:10000000000000&#34; 当我明确地与“长期”合作时,它如何谈论整数呢? ? 这些循环仅适用于&#39; int&#39 ;? 如果是这样,我将如何使用&#39; long&#39;作为类型?

2 个答案:

答案 0 :(得分:3)

它看起来很简单:)

    long l = 10000000000L;
    while (l < 10000000000000L) {

    }
    for (long k = 0; k < 10000000000000L; k++) {

    }

答案 1 :(得分:2)

您需要添加l(或L)后缀,以将该数字标记为long

while (l<10000000000000l){

}
for (long k =0;k<10000000000000l;k++){

}

否则,该数字被视为一个整数,并且它高于整数范围(2147483647)中的最大值。