使用BigIntegers作为Java中while循环的条件

She*_*say 2 java

我想在while循环条件中使用一个大整数值,但这不起作用.

import java.util.Scanner;
import java.util.StringTokenizer;
public class NiceProbelm2 {
public static void main(String[]args){
    Scanner input = new Scanner(System.in);
    String number = input.nextLine();
    StringTokenizer st = new StringTokenizer(number);
    BigInteger base = null;
    int power=0;
    while (st.hasMoreTokens()) {
          String token1 = st.nextToken();
          String token2 = st.nextToken();
          base = new BigInteger(token1);
          power = Integer.parseInt(token2);


        }

        BigInteger result = base.pow(power);
        //long fresult = (long)result;
        BigInteger div = new BigInteger("10");
        System.out.println(result);
        BigInteger sum=null;
     //NOt working while(result.compareTo(new BigInteger("0")) > 10 )
                    {
        BigInteger digit = result.mod(div);
        result = result.divide(div);
        sum = sum.add(digit);

    }
     System.out.println(sum);
}
Run Code Online (Sandbox Code Playgroud)

}

Joa*_*uer 7

你永远不应该将返回值与compareTo()0之外的任何值进行比较.(BigInteger.compareTo()更具体一点,但仍然适用相同的规则)

您可以检查它是否大于0,小于0或等于0.只有这3条信息实际上是相关的.实际值(如果它返回1或10或100)无关紧要.