java:BigInteger情况下for循环如何工作
我想把用户的输入作为一个大整数,并把它处理成一个For循环java:BigInteger情况下for循环如何工作,java,biginteger,Java,Biginteger,我想把用户的输入作为一个大整数,并把它处理成一个For循环 BigInteger i; for(BigInteger i=0; i<=100000; i++) { System.out.println(i); } biginger i; 对于(BigInteger i=0;i您可以使用以下语法: BigInteger i = BigInteger.valueOf(100000L); // long i = 100000L; i.compareTo(BigInteger.ONE)
BigInteger i;
for(BigInteger i=0; i<=100000; i++) {
System.out.println(i);
}
biginger i;
对于(BigInteger i=0;i您可以使用以下语法:
BigInteger i = BigInteger.valueOf(100000L); // long i = 100000L;
i.compareTo(BigInteger.ONE) > 0 // i > 1
i = i.subtract(BigInteger.ONE) // i = i - 1
下面是一个将其组合在一起的示例:
for (BigInteger bi = BigInteger.valueOf(5);
bi.compareTo(BigInteger.ZERO) > 0;
bi = bi.subtract(BigInteger.ONE)) {
System.out.println(bi);
}
// prints "5", "4", "3", "2", "1"
请注意,使用biginger
作为循环索引是非常不典型的。long
通常就足够了
API链接
-
- 从
compare to
习惯用法
从文件中:
对于六个布尔比较运算符(
,=
,!=
,,,)中的每一个,提供此方法比单独的方法更优先。我认为此代码应该可以工作
public static void main(String[] args) {
BigInteger bigI = new BigInteger("10000000");
BigInteger one = new BigInteger("1");
for (; bigI.compareTo(one) == 0; bigI.subtract(one)) {
bigI = bigI.add(one);
}
}
首先,你有两个变量,叫做“i”
第二,用户输入在哪里
第三,i=i+i将i解装箱到一个原语值中,可能会使其溢出,并将结果装箱到一个新对象中(也就是说,如果语句甚至编译了,我没有选中)
第四,i=i+i可以写成i=i.multiply(biginger.valueof(2))
第五,循环永远不会运行,因为这可能会起作用
BigInteger i;
for(i = BigInteger.valueOf(0);i.compareTo(new BigInteger("100000"))
<=0;i=i.add(BigInteger.ONE))
{
System.out.println(i);
}
biginger i;
对于(i=BigInteger.valueOf(0);i.compareTo(新的BigInteger(“100000”))
重新格式化的代码;如果不正确,请还原。它看起来很奇怪:它增长得很奇怪(i=i+i-1)…而且它不是BigInteger,我声明了两次;我认为这不会编译。我故意没有解决您代码片段的奇怪之处(其他人已经这样做了)但是,试着回答一个关于biginger
用法的更一般的问题。如果你能解释一下你要做什么,我可以看看我们是否遗漏了什么。没有使用biginger
bigI进行自动装箱/取消装箱。减法(一)
实际上不“做”总之,是的,对不起,它应该将bigI设置为results,这样将从5迭代到1。但是如果我想编写for循环,该循环从0迭代到4,包含5个值,该怎么办?我可以这样做吗?
s = s.trim();
bi = bi.add(BigInteger.ONE);
public static void main(String[] args) {
BigInteger bigI = new BigInteger("10000000");
BigInteger one = new BigInteger("1");
for (; bigI.compareTo(one) == 0; bigI.subtract(one)) {
bigI = bigI.add(one);
}
}
BigInteger i;
for(i = BigInteger.valueOf(0);i.compareTo(new BigInteger("100000"))
<=0;i=i.add(BigInteger.ONE))
{
System.out.println(i);
}
for(BigInteger i = BigInteger.valueOf(0);i.compareTo(new BigInteger("100000"))
<=0;i=i.add(BigInteger.ONE))
{
System.out.println(i);
}