为什么来自控制台的用户输入没有被第二次读取和存储?

Why user inputs from consol are not getting read and stored the second time?

你好 Whosebug 社区的好人,目前我遇到了一个问题,我需要你 advice/help。 我编写了一段代码,它将接受用户输入的测试用例,对于每个测试用例,我的程序将执行并提供结果。

此外,对于每个测试用例,我也从用户那里获取一些其他值

前任

Code

 Scanner sc = new Scanner(System.in);
    int T = sc.nextInt();
    while(T-->0){
    long K = sc.nextLong();
 if (K >= 2 && K <= (10 ^ 12)) {
    int d0 = sc.nextInt();
    int d1 = sc.nextInt();
    //some additional code
    }
}

所有变量,即 Kd0d1 都是第一次输入,但第二次是 d0d1没有取任何值,而是将值存储在变量 K(对于 T > 1)中,我不确定为什么?!

for ex - T = 3

的值

T = 3K,d0,d1的对应值为5 3 0 T = 2 是 17 6 7 这里 d0d1 的值没有被存储,而是被存储在 K 中,这样 K = 17 然后 K = 6 和循环结束(因为 T = 0 )

提前致谢!

10 ^ 12 不是您期望的那样。 ^bitwise-xor 运算符。

运算符将逻辑上比较 1012 的每一位,如果两个输入位中恰好有一个为 1(并且所以另一个是0)。

10 在二进制中是 0b1010
12 在二进制中是 0b1100
因此 10 xor 120b0110 也就是十进制的 6

为了计算 10 的 12 次方使用 Math.pow(10,12)