- 我要编写一个程序,提示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;
}
}
答案 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)
。也就是说,删除主要大写字母,并在最后删除分号。