在Java中运行For循环超过十亿次

时间:2015-01-06 01:25:50

标签: java for-loop int

有没有办法运行for循环

i > INT_MAX_VALUE

我知道INT_MAX_VALUE等于2,147,483,647

我无法想象它是不可能的,但是如果它有解决方法吗?

非常感谢你们。

4 个答案:

答案 0 :(得分:4)

循环通常与整数类型无关。但在这种情况下,您只需使用long类型而不是int类型。

for(long i=0;i<max;i++){  
// as max is long type and max can take values upto 9,223,372,036,854,775,807
//code
}

答案 1 :(得分:4)

其他数据类型的范围大于简单int。例如:

for (long num = 0; num < 1000000000000L; num++) ...

这会让你达到大约9 quintillion(9,223,372,036,854,775,807)。如果您需要更多,那么您可能不需要考虑范围,而不是时间它将用于运行循环 - 十亿每秒迭代,它需要花费290多年的时间: - )

答案 2 :(得分:1)

您必须i long,因此可以使值大于Integer.MAX_VALUE。如果您在循环条件中使用了字面数字,请附加“&#39; L&#39;使用long字面值,以便您可以使用大于Integer.MAX_VALUE的文字值。

答案 3 :(得分:0)

BigInteger bi_ = new BigInteger("1000000000000000000");
    for(;true;) {
        System.out.println(bi_);
        bi_ = bi_.add(new BigInteger("1"));
        if(bi_.equals(new BigInteger("1000000000000000000000000000"))) {
            System.out.println(bi_);
            break;
        }
    }
 Above for loop start from 1 quintillion and end with 1 octillion
// One quintillion --> 10^18 = 1,000,000,000,000,000,000
// One octillion   --> 10^27 = 1,000,000,000,000,000,000,000,000,000