int crack1 = rand.nextInt(9);
int crack2 = rand.nextInt(9);
int crack3 = rand.nextInt(9);
int crack4 = rand.nextInt(9);
int crack5 = rand.nextInt(9);
int crack6 = rand.nextInt(9);
int crack7 = rand.nextInt(9);
int crack8 = rand.nextInt(9);
我有这个代码从0-9生成8个随机数。我有8个这样的switch语句,只有“crack1”变量从1-8变化。此代码使用java机器人按生成顺序打印出随机数。出于某种原因,无论何时生成2,它都会产生额外的3,每当生成5时,后面会有6个额外的数据。例如,如果生成数字12345678,机器人将输入1233456678。
switch (crack1) {
case 0:
r.delay(5000);
r.keyPress(48);
r.keyRelease(48);
break;
case 1:
r.delay(5000);
r.keyPress(49);
r.keyRelease(49);
break;
case 2:
r.delay(5000);
r.keyPress(50);
r.keyRelease(50);
case 3:
r.delay(5000);
r.keyPress(51);
r.keyRelease(51);
break;
case 4:
r.delay(5000);
r.keyPress(52);
r.keyRelease(52);
break;
case 5:
r.delay(5000);
r.keyPress(53);
r.keyRelease(53);
case 6:
r.delay(5000);
r.keyPress(54);
r.keyRelease(54);
break;
case 7:
r.delay(5000);
r.keyPress(55);
r.keyRelease(55);
break;
case 8:
r.delay(5000);
r.keyPress(56);
r.keyRelease(56);
break;
case 9:
r.delay(5000);
r.keyPress(57);
r.keyRelease(57);
break;
}
答案 0 :(得分:3)
您忘记在break;
中为案例2和5添加switch
,因此代码会继续执行,并相应地执行3和6案例。
答案 1 :(得分:2)
使用以下内容代替巨大的交换机(您可以看到容易出错):
int key= 48+crack1;
r.delay(5000);
r.keyPress(key);
r.keyRelease(key);
它将处理0-9的情况。
答案 2 :(得分:1)
出于某种原因,无论何时生成2,都会有一个额外的 3,每当产生5时,接着是额外的6
对于案例2和案例5,您没有break语句,因此将执行以下case语句:
case 2:
r.delay(5000);
r.keyPress(50);
r.keyRelease(50);
// missing break statement
和
case 5:
r.delay(5000);
r.keyPress(53);
r.keyRelease(53);
// missing break here