Java Random - 两个相等值中的一个如何不同于另一个?

时间:2013-09-21 22:13:15

标签: java swing random int

看看这段代码:

        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将不会继续... 请帮帮我!

1 个答案:

答案 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而不是== "",并且您应该先进行空检查而不是第二次。“