Java 大整数不增加?

Java 大整数不增加?,java,Java,由于某些原因,我的val变量在while循环中没有增加。有什么理由不这么做吗val.add(biginger.ONE) val.add(biginger.ONE)返回一个新值。您不会将其分配给任何对象: val = val.add(BigInteger.ONE); val.add(biginger.ONE)返回一个新值。您不会将其分配给任何对象: val = val.add(BigInteger.ONE); 您可以再次初始化总和 BigInteger val=BigInteger.value

由于某些原因,我的
val
变量在while循环中没有增加。有什么理由不这么做吗<代码>val.add(biginger.ONE)

val.add(biginger.ONE)
返回一个新值。您不会将其分配给任何对象:

val = val.add(BigInteger.ONE);

val.add(biginger.ONE)
返回一个新值。您不会将其分配给任何对象:

val = val.add(BigInteger.ONE);

您可以再次初始化总和

BigInteger val=BigInteger.valueOf(10);
BigInteger val2=BigInteger.valueOf(20);
BigInteger val3=va1.add(val2);

您可以再次初始化总和

BigInteger val=BigInteger.valueOf(10);
BigInteger val2=BigInteger.valueOf(20);
BigInteger val3=va1.add(val2);

哇!我甚至没有意识到。谢谢还要注意:这不是一种有效的计算大数的方法。“不会是有效的”可以重新表述为“是不切实际的低效的”…@Dandy BigInteger-like字符串是不可变的,所以不能修改它。您只能返回一个新值(就像使用字符串一样)哇。我甚至没有意识到。谢谢还要注意:这不是一种有效的计算大数的方法。“不会是有效的”可以重新表述为“是不切实际的低效的”…@Dandy BigInteger-like字符串是不可变的,所以不能修改它。您只能返回一个新值(就像使用字符串一样),尽管显式地将返回值列为“-1、0或1”,但最好按照从
Comparable
继承的更一般的约定进行编码,该约定表示“负整数、零或正整数”,因此您应该编写
a.compareTo(b)>0
,而不是
a.compareTo(b) ==1
。它读起来也更好,因为它意味着
a>b
,即
a.compareTo(b)op0
意味着
a opb
,其中
OP
可以是
,或者
!=/code>。尽管明确地将返回值列为“-1、0或1”,最好是按照继承自
Comparable
的更一般的契约进行编码,该契约表示“负整数、零或正整数”,因此您应该编写
a.compareTo(b)>0
,而不是
a.compareTo(b)==1
。它的可读性也更好,因为它意味着
a
,即
a.compareTo(b)OP 0
表示
a OP b
,其中
OP
可以是
,也可以是
!=