看看这段代码:
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的长度然后保持,如果我看不到33和33或最坏的0和0? 我知道你们有些人今晚看到了我的许多问题,但是我无法通过这个循环,总会出现一些错误或者其他错误,在这种情况下,随着hold的值为0,Random将不会继续... 请帮帮我!
答案 0 :(得分:5)
您使用了
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
而不是== ""
,并且您应该先进行空检查而不是第二次。“