有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

是否在Java语言中执行while循环?

我的程序坏了!我需要它随机掷两个骰子,数数掷骰的次数,直到得到一个蛇眼(2个)
我觉得我很接近了,但我的程序只会滚动一次,而不是多次,直到滚动两次

我得到的输出是一个骰子滚动的无限循环

import java.io.*;

public class PA 
{
    public static void main (String [] args) 
    {
        int count = 0;
        int die1 = (int)(Math.random()*6)+1;
        int die2 = (int)(Math.random()*6)+1;
        int sumDie = die1+die2;    
        do 
        {
            System.out.println ("You rolled a:" + die1);
            System.out.println ("You rolled a:" + die2);
            System.out.println ("This is roll number:" + count);
            count = count + 1;
        } 
        while (sumDie > 2); 
        {
            System.out.println ("You rolled:" + die1);
            System.out.println ("You rolled:" + die2);
            System.out.println ("This is roll number:" + count):
            count++
        }
        if (die1 == 1 && die2 == 1);
        System.out.println ("Congratulations...Snake Eyes");
    }
}

共 (1) 个答案

  1. # 1 楼答案

    您需要将掷骰子的代码移动到循环内部。 而且,while之后的代码块是不需要的。 最后的if首先,由于分号,它什么也不做(没有主体)。第二,无论如何都不需要,因为while条件确保了这一点

    public static void main (String [] args) 
    {
        int count = 0;
        int die1, die2;
        do 
        {
            // New roll each time
            die1 = (int)(Math.random()*6)+1;
            die2 = (int)(Math.random()*6)+1;
    
            count = count + 1;
            System.out.println ("You rolled a:" + die1);
            System.out.println ("You rolled a:" + die2);
            System.out.println ("This is roll number:" + count);
        } while (die1 + die2 > 2);
    
        System.out.println ("Congratulations...Snake Eyes");
    }