如何使方法打印出特定数字的滚动次数?

时间:2018-05-17 03:52:37

标签: java for-loop methods return drjava

我必须做一个骰子计划。程序会询问你想掷骰子的次数,然后询问你想要统计数字的数字(2-12)。然后它掷骰子(x)的次数,并给你每次滚动的数字。然后它会告诉你每个数字(2-12)被滚动的次数,它应该用程序告诉你你要求查看统计​​数据的百分比是多少(例如:25个骰子卷,2卷添加到总共10个。滚动的10s的百分比是8%)。

我必须使用这个程序的方法,我的统计方法打印1而不是多次7显示(我使用7作为一种测试我正在做什么,因为7应该弹出在掷骰子期间很多。)

我正在使用drjava,我不应该为我的程序使用调试器,因为我们的教练还没有教我们如何做到这一点!我认为我的循环是问题,因为我试图让d打印。

另外,我如何找到所选号码的滚动次数百分比?

import java.util.*; 
public class EZD_diceRoll
 {
  public static void main(String args[])
{



  EZD_diceRoll.roll();
  EZD_diceRoll.statistics(d);
}

 private static int die1;
 private static int die2;
 private static int total;
 public static int number;
 public static int d;
 public static int times;

 public static void roll()
 {
  Random nums = new Random();
  Scanner kbReader = new Scanner(System.in);

  System.out.print("How many times would you like to roll?");
  times = kbReader.nextInt();
  System.out.print("What number (dice roll total) do you want the statistics 
  for (2 - 12)?");
  number = kbReader.nextInt();


  for(int a = 1; a < times + 1; a++)
 {
  die1 = 1 + nums.nextInt(6);
  die2 = 1 + nums.nextInt(6);
  total = die1 + die2;

  System.out.println("Dice roll #" + a + " is " + total);
 }
}


public static void statistics(int d)
{

  for(int c = 0; c < times + 1; c++)
    {

    if(total == 7)
      {
        d++;
      }
    }
  System.out.println("The number of 7's thrown was " + d);
 }
}

2 个答案:

答案 0 :(得分:1)

使用java.util.HashMap

1

键代表具体数字,代表频率。获得一个数字后,检查它是否存在于地图中。如果没有,请将其放入地图中,初始频率为app/build.gradle。否则,增加频率。

答案 1 :(得分:0)

为骰子输出值初始化计数器(int var)(2-12) 并在for循环中使用switch语句,对于每个滚动输出,在每个情况下给出一个内部开关和递增计数器的情况,这些计数器值给出了滚动值的次数。

如果你只想要最终数字,只需使用所有system.out.print语句for(循环)for循环而不是在case语句中使用它们,下面的代码打印每个roll。

  int[] count=new int[10] //counter for values 2-12


for(int a = 0; a < times + 1; a++)      
{
  die1 = 1 + num.nextInt(6);

  die2 = 1 + num.nextInt(6);

  total = die1 + die2;

switch(total)

  {     
 case 2:
 count[0]++;

 System.out. print("dice 2 rolled" +count[0] +" time");
 break;


 case 3:

 count[1]++;

 System.out. print("dice 3 rolled" +count[1] +" time");
 break;


  case 4:

  count[2]++;

  System.out. print("dice 4 rolled" +count[2] +" time");
 break;

.

.

 .

 .

case 12:

 count[10]++;

System.out. print("dice 12 rolled" +count[10] +" time");
break;

}     }