关于骰子阵列程序

时间:2012-01-24 03:12:25

标签: java

- 我要编写一个程序,提示N是掷骰子的数量,M是滚动的次数。我必须重复M次N6或六面模具并计算并记录卷的总和。使用数组我必须报告每次可能的总数从6到6N发生的次数和百分比。

这是我的代码到目前为止,我无法编译,我认为我完全错了,我们只有一个教授java的教授,他不擅长解释事情,似乎总是在如果我们提出问题,请赶时间。这是我的第二个分班,我在第一学期几乎没学到任何东西。 ////////////////////////////////

    import java.util.Random;
    import java.util.Scanner;

     public class Lab1
    {
   public static Scanner in = new Scanner (System.in);
       public static void main (String[] args)

{
      int dice = 0;
        int roll = 0;
       while (true) 
     {
      System.out.print ("How many dice do you roll?");
            dice = in.nextInt();
       }


         System.out.print ("How many Times do you want to roll?");
           roll = in.nextInt();
           }
         int dicetotal = Dicecount (dice); //Error message. dice cannot be resolved to Variable//
         for (int i = 0; i< roll; i++)

         System.out.println (Dicecount (dice));
          }
       }
       public static int Dicecount ( int dice); 
         {
        int dicetotal = 0;
        for (int x = 0: x < dice; x++)
      {
         int rollcount = (int) (1+6* (Math.random()));
       dicetotal+=rollcount;}
     return dicetotal;
     }
      }

2 个答案:

答案 0 :(得分:1)

正确格式化您的代码。这将帮助您找到以:

开头的6行
int dicetotal = Dicecount (dice);

不在功能块内,并且需要。

此行中也有一个冒号而不是分号(从底部开始约7):

for(int x = 0; x < dice; x++){

修复这些错误将允许您的代码成功编译 - 但这并不意味着它将执行您希望它执行的操作。自this is homework起,您将被要求找到这些问题,并至少自己对它们进行初步排查。

答案 1 :(得分:0)

此代码似乎有两个其他问题:

1)在Java方法中,名称应始终以小写字母开头。这里有一个名为dicecount的方法。这是一个无效的名称,会混淆Java编译器。

2)在声明Dicecount方法的行上,最后有一个分号。这是语法错误,会导致代码无法编译或行为不正确。这样做的原因是分号基本上告诉编译器当前行是一个完整的语句。但它还没有完成,你仍然需要声明方法的主体。

所以我的建议是将此行public static int Dicecount ( int dice);更改为此public static int dicecount(int dice)。也就是说,删除主要大写字母,并在最后删除分号。