java - 在随机方法中测试特定数字时,我得到的结果好坏参半

标签 java

在测试这两种方法时,我得到的结果好坏参半。有时,在测试时,本应为假的值却为真,反之亦然。我尝试在 Roll 方法中返回一个数字,并且在测试时效果很好。

 public class Game {

    public int Roll() {
        return ran.nextInt(10) + 1;
    }

    public boolean checkRoll() {
        boolean check;
        if(Roll() == 1 || Roll() == 5) {
            check = true;
        }
        else {
            check = false;
        }
        return check;           
    }

    public static void main(String [] args ) {  
        Game g = new Game();
        System.out.println(g.Roll());
        System.out.println(g.checkRoll());
    }

最佳答案

当你打电话时

 System.out.println(g.Roll());
 System.out.println(g.checkRoll());

你实际上运行了两次滚动函数。 (如果你算上在 IF/OR 中调用它,则为 3 次)所以你打印的数字与你稍后在 g.checkroll 中测试的数字不同(因为它通过调用你的 Roll 来滚动一个新数字),所以“true”或“false”打印与之前的号码无关。要么将 checkRoll 函数作为子函数放入 Roll 函数中,要么使用一些全局变量在测试之前存储 Roll,而不是重新滚动它。

关于java - 在随机方法中测试特定数字时,我得到的结果好坏参半,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46557219/

相关文章:

java - 在我的程序中出现空指针异常。我究竟做错了什么?

java - JDK 版本不在允许的范围内

java - 如果代理类具有包私有(private)默认构造函数,则代理实例化失败

java - 来自 wsdl 的动态 Web 服务客户端

java - 这个二项式定理计算器有什么问题?

java - GraphicsDevice - 无法从全屏返回

java - JPopupMenu 在鼠标输入时消失

java - 客户端在 Java 的套接字应用程序中无法正常工作

java - 如何使用广播接收器警报管理器每 10 秒向服务器发送一次文本

java - (Java) 为什么这个构造函数会导致空指针异常?