【发布时间】:2014-10-07 22:33:08
【问题描述】:
我的代码有什么问题?我正在使用 BlueJ。基本上我要做的是,选择骰子有多少面,输入每个面的数量,掷骰子一定次数并显示一个数字已经掷了多少次。
示例:六个面,数字是:1、2、3、4、5、6。我掷骰子 20 次。我看到一面已经滚动了多少次。
错误是 java.lang.ArrayIndexOutOfBoundsException
import javax.swing.*;
class Dice
{
public static void main (String [] args)
{
int c = Integer.parseInt(JOptionPane.showInputDialog("How many sides?"));
String[ ] number = new String[c];
int[ ] sides = new int[c];
int d = Integer.parseInt(JOptionPane.showInputDialog("How many times do you want to roll your dice?"));
int[ ] output = new int[c];
for(int i=0;i<c;i++)
{
number[i] = JOptionPane.showInputDialog("Enter side number:");
}
for(int i=0;i<d;i++)
{
int r;
r = (int) Math.floor(Math.random() * c) + 1;
if(r == sides[i])
{
sides[i] = sides[i] + 1;
}
}
for(int i=0;i<c;i++)
{
System.out.println(number[i] + " was rolled " + output[i] + " times.");
}
}
}
【问题讨论】:
-
你告诉我们怎么了!添加异常消息(如果有),以及预期和实际输出。