如何 'pre increment' Java 中的 BigInteger?
How to 'pre increment' a BigInteger in Java?
我有一个带有 BigInteger
的 for
循环,像这样:
for(BigInteger a = BigInteger.valueOf(1); a.compareTo(someBigInteger); ++a) {...
显然我不能在非基元上使用 ++
运算符。我该如何解决这个问题?
此外,我必须在这种情况下使用 BigInteger
。
++a
是前缀增量,而不是后缀增量,但在 for 循环的上下文中它并不重要,因为您无论如何都会忽略该语句的 return 值.无论如何,可以通过调用 BigInteger.add
来实现此功能。另请注意 compareTo
returns 和 int
,并且由于 Java 在 int
s 和 boolean
s 之间没有隐式转换(例如,例如,C 会),您必须将其结果与 0 进行比较,以查看 a
是否小于、大于或等于 someBigInteger
):
for (BigInteger a = BigInteger.ONE;
a.compareTo(someBigInteger) < 0;
a = a.add(BigInteger.ONE)) {...
您无法重新定义运算符 ++ 以使用 BigInteger,因此解决方案很简单:
1)首先声明一个BigInteger并初始化它
2) 在循环中,重新赋值BigInteger(调用add方法时会创建一个新的BigInteger);
private static final BigInteger LIMIT = new BigInteger("10");
public static void main(String[] args) {
new BigInteger("0");
for (BigInteger a = BigInteger.ZERO; a.compareTo(LIMIT) < 0; a = a.add(new BigInteger("1")))
System.out.println(a);
}
参考文档http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html#add(java.math.BigInteger)
你可以这样。
for(BigInteger a = BigInteger.ONE; a.compareTo(someBigInteger); a=a.add(BigInteger.ONE)) {.
我有一个带有 BigInteger
的 for
循环,像这样:
for(BigInteger a = BigInteger.valueOf(1); a.compareTo(someBigInteger); ++a) {...
显然我不能在非基元上使用 ++
运算符。我该如何解决这个问题?
此外,我必须在这种情况下使用 BigInteger
。
++a
是前缀增量,而不是后缀增量,但在 for 循环的上下文中它并不重要,因为您无论如何都会忽略该语句的 return 值.无论如何,可以通过调用 BigInteger.add
来实现此功能。另请注意 compareTo
returns 和 int
,并且由于 Java 在 int
s 和 boolean
s 之间没有隐式转换(例如,例如,C 会),您必须将其结果与 0 进行比较,以查看 a
是否小于、大于或等于 someBigInteger
):
for (BigInteger a = BigInteger.ONE;
a.compareTo(someBigInteger) < 0;
a = a.add(BigInteger.ONE)) {...
您无法重新定义运算符 ++ 以使用 BigInteger,因此解决方案很简单: 1)首先声明一个BigInteger并初始化它 2) 在循环中,重新赋值BigInteger(调用add方法时会创建一个新的BigInteger);
private static final BigInteger LIMIT = new BigInteger("10");
public static void main(String[] args) {
new BigInteger("0");
for (BigInteger a = BigInteger.ZERO; a.compareTo(LIMIT) < 0; a = a.add(new BigInteger("1")))
System.out.println(a);
}
参考文档http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html#add(java.math.BigInteger)
你可以这样。
for(BigInteger a = BigInteger.ONE; a.compareTo(someBigInteger); a=a.add(BigInteger.ONE)) {.