有没有办法运行for循环
i > INT_MAX_VALUE
我知道INT_MAX_VALUE等于2,147,483,647
我无法想象它是不可能的,但是如果它有解决方法吗?
非常感谢你们。
答案 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