Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java -掷2个骰子直到得到蛇是-什么';it’我的逻辑有问题,如何打印一个方法的最后一个结果而不重新校准它_Java - Fatal编程技术网

Java -掷2个骰子直到得到蛇是-什么';it’我的逻辑有问题,如何打印一个方法的最后一个结果而不重新校准它

Java -掷2个骰子直到得到蛇是-什么';it’我的逻辑有问题,如何打印一个方法的最后一个结果而不重新校准它,java,Java,这是一个家庭作业,我必须编码2个骰子,不断滚动,只有当两个骰子都被蛇咬时才会停止。我有两个问题: 有时CastDie1和CastDie2返回1,但IF语句不验证条件 我想打印每个结果,包括蛇眼,但每当我尝试打印SnakeYes结果时,该方法会再次被调用,并且数字会发生变化 public class SnakeEyesCount { /** * @param args the command line arguments * @return */ public static int CastD

这是一个家庭作业,我必须编码2个骰子,不断滚动,只有当两个骰子都被蛇咬时才会停止。我有两个问题:

  • 有时CastDie1和CastDie2返回1,但IF语句不验证条件
  • 我想打印每个结果,包括蛇眼,但每当我尝试打印SnakeYes结果时,该方法会再次被调用,并且数字会发生变化

    public class SnakeEyesCount {
    
    /**
    * @param args the command line arguments
    * @return 
    */
    public static int CastDie1() {
        int die1 = (int)(Math.random()*6)+1;
        return die1;
    }
    
    public static int CastDie2() {
        int die2 = (int)(Math.random()*6)+1;
        return die2;
    }
    
    public static void main(String[] args) {
        // TODO code application logic here
        int countSnakeEyes = 0;
        boolean snakeEyes = false;
    
        while (snakeEyes == false) {
            TextIO.putln("Die1: " + CastDie1());
            TextIO.putln("Die2: " + CastDie2());
            countSnakeEyes++;
            if (CastDie1() == 1 && CastDie2() == 1) {
                TextIO.putln("Die1: " + CastDie1() + " SNAKE EYES!");
                TextIO.putln("Die2: " + CastDie2() + " SNAKE EYES!");
                TextIO.putln("Snake Eyes after " + countSnakeEyes + " rolls of the dice");
                snakeEyes= true;
            }
        }
    }
    }
    

  • 将方法调用的结果存储在变量中。打印变量的值,然后检查是否为蛇眼


    此外,不需要有两种单独的铸造方法;它们做同样的事情。

    将方法调用的结果存储在变量中。打印变量的值,然后检查是否为蛇眼


    此外,不需要有两种单独的铸造方法;他们做同样的事情。

    你调用
    CastDie1
    CastDie2
    两次。由于结果是随机的,所以不能保证在连续执行中获得相同的值

    调用方法一次,并将结果存储在一个变量中,以便打印出来并以其他方式使用

    while(!snakeEyes) {
        int die1 = CastDie1();
        int die2 = CastDie2();
        TextIO.putln("Die1: " + die1);
        // and so forth
        if(die1 == 1 && die2 == 1) {
            // the rest of your logic
        }
    }
    

    虽然我认为有两个不同的方法来调用die是您想要的,但它们做的事情是相同的,所以我鼓励您将其分解为一个方法:
    castDie
    。我将此作为练习留给读者。

    您调用
    CastDie1
    CastDie2
    两次。由于结果是随机的,所以不能保证在连续执行中获得相同的值

    调用方法一次,并将结果存储在一个变量中,以便打印出来并以其他方式使用

    while(!snakeEyes) {
        int die1 = CastDie1();
        int die2 = CastDie2();
        TextIO.putln("Die1: " + die1);
        // and so forth
        if(die1 == 1 && die2 == 1) {
            // the rest of your logic
        }
    }
    

    虽然我认为有两个不同的方法来调用die是您想要的,但它们做的事情是相同的,所以我鼓励您将其分解为一个方法:
    castDie
    。我将此作为练习留给读者。

    将调用
    castDie
    的结果分配给局部变量
    int die1=castDie1()
    ,然后您可以打印并计算它,而无需更改它将调用
    castDie
    的结果分配给局部变量
    int die1=castDie1()
    ,然后您可以打印并计算它,而无需更改。我曾尝试只使用一种方法,但后来我意识到“哦,我不知道如何返回2个值,也不知道如何分别打印出每个值”。不管怎样,谢谢你的帮助。我确实试着只使用一种方法,但后来我意识到“哦,我不知道如何返回2个值,也不知道如何分别打印这些值”。无论如何,谢谢你的帮助。