看一下这段代码:
while(oneRay[pick][0] == "" || oneRay[pick][0] == null)
hold = oneRay.length;
random = new Random();
System.out.println(oneRay.length + "\n" + hold);
pick = random.nextInt(hold);
System.exit(0);
}
在控制台输出中,我看到33,然后是0。这有什么意义?首先,将hold设置为等于oneRay的长度,然后打印oneRay的长度,然后打印hold,我是否应该看不到33和33或最差的0和0?
我知道你们中的一些人今晚已经看过我的许多问题,但是我无法绕过这个循环,总会出现一些错误或其他错误,在这种情况下,因为hold的值为0,所以Random不会继续进行...
请帮我!
最佳答案
你用过
while(oneRay[pick][0] == "" || oneRay[pick][0] == null)
然后您没有使用方括号,这意味着您的代码实际上像
while(oneRay[pick][0] == "" || oneRay[pick][0] == null) {
hold = oneRay.length;
}
random = new Random();
System.out.println(oneRay.length + "\n" + hold);
特别是,如果
while
条件不成立,则甚至不会执行hold = oneRay.length
。(您还应该使用
.equals("")
或.isEmpty
而不是== ""
,并且应该首先而不是第二次执行null检查。)