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

标签 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的长度,然后打印hold,我应该看不到33和33,或者最坏的情况是0和0吗? 我知道你们中的一些人今晚已经看到了我的许多问题,但我无法通过这个循环,总是存在一些错误或其他错误,在这种情况下,随机不会继续,因为保持的值为 0... 请帮助我!

最佳答案

你使用了

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

关于Java Random - 两个相等的值之一如何与另一个不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18938210/

相关文章:

java - 是否可以将新对象分配给 'this' ?

java - 使用 Socket 通过 GAE Java 从 Gmail 发送电子邮件

java - 如何修复 "Exception in thread "AWT-EventQueue- 0"java.lang.NullPointerException"?

java - 通过树形图和 SQL 填充 JTable

c++ - 如何在C++中生成高精度的随机 double ?

python - 无法理解 numpy.random.RandomState() 的输出

python - 创建一系列数字随机洗牌的二维数组的有效方法

java - 从表单调用 servlet 不起作用

用于基于视频的应用程序的 Java : Good choice?

Java:我无法多次运行 JTextArea?