【问题标题】:Java:Counting the times each number is rolled on a dieJava:计算每个数字在骰子上滚动的次数
【发布时间】:2018-09-06 12:22:43
【问题描述】:
public class Die {
  public static void main(String[] args) {

    Random r = new Random();    

    int dieOne=0, dieTwo=0, dieThree=0, dieFour=0, dieFive=0, dieSix=0;

    Scanner input = new Scanner(System.in);

    System.out.println("How many times would you like the die to roll?: ");
        int numRoll = input.nextInt();  

    for (int i=0; i < numRoll; i++) {
        int rNum=r.nextInt(6)+1;

        if (rNum==1); {
            dieOne++;
        } 
        if (rNum==2); {
            dieTwo++;
        }
        if (rNum==3); {
            dieThree++;
        }
        if (rNum==4); {
            dieFour++;
        }
        if (rNum==5); {
            dieFive++;
        }
        if (rNum==6); {
            dieSix++;
        }
        System.out.println("Number:" + rNum);
    }

    System.out.println("'1' was rolled:" + dieOne + "times.");
    System.out.println("'2' was rolled:" + dieTwo + "times.");
    System.out.println("'3' was rolled:" + dieThree + "times.");
    System.out.println("'4' was rolled:" + dieFour + "times.");
    System.out.println("'5' was rolled:" + dieFive + "times.");
    System.out.println("'6' was rolled:" + dieSix + "times.");
    }
}

所以如果我运行程序并输入 2。我会得到这个:

Number:6
Number:3
'1' was rolled:2times.
'2' was rolled:2times.
'3' was rolled:2times.
'4' was rolled:2times.
'5' was rolled:2times.
'6' was rolled:2times.

但我想要的输出是这样的:

Number:6
Number:3
'1' was rolled:0times.
'2' was rolled:0times.
'3' was rolled:1times.
'4' was rolled:0times.
'5' was rolled:0times.
'6' was rolled:1times.

用同样的方法解决这个问题的方法是什么?

【问题讨论】:

  • if 条件之后丢失那些分号。
  • 非常感谢,我不知道我怎么没注意到。
  • 你了解数组了吗?
  • 在这种情况下,我宁愿选择switch 而不是if
  • @msagala25 数组会更简洁,更容易为 D&D 玩家扩展或泛化。

标签: java random numbers die


【解决方案1】:

您应该删除if 后面的那些分号

if (rNum==1) {
   dieOne++;
} 

而不是

if (rNum==1); {
   dieOne++;
} 

另外,你应该使用else 分支或者更好地使用数组来解决这类问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-23
    • 2020-06-06
    • 2013-09-17
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    相关资源
    最近更新 更多