0

看看这段代码:

        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。这有什么意义?首先,我将保持设置为等于 oneRay 的长度,然后我打印 oneRay 的长度,然后是保持,我应该看不到 33 和 33 还是最坏的 0 和 0?我知道你们中的一些人今晚已经看到了我的许多问题,但我无法通过这个循环,总是有一些错误或其他错误,在这种情况下,随机不会继续,因为保持的值为 0......请帮助我!

4

1 回答 1

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("")or.isEmpty而不是== "",并且您应该首先而不是第二次进行空检查。)

于 2013-09-21T22:16:15.437 回答