0
package dice.project;
import java.util.Scanner;
import java.util.Random;

public class DiceProject {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("Enter your number of rolls:");
        int count = in.nextInt();
        int[]rollDice = new int[count];
        Random values = new Random();

        for(int m=0; m<count; m++)
        {
            rollDice[m]=values.nextInt(6)+1;
        }
        boolean inRun=false;
        for(int m=0; m<rollDice.length; m++)
        {
            if(inRun)
            {
                if(m>0 && rollDice[m]!=rollDice[m-1])
                {
                    System.out.print(")" + rollDice[m]);
                    inRun=false;
                }
            }
            if(!inRun)
            {
                if(m<rollDice.length-1 && rollDice[m]==rollDice[m-1])
                {
                    System.out.print("(" + rollDice[m]);
                    inRun=true;
                }
            }
            System.out.print(rollDice[m]);


         }
            if(inRun)
                System.out.print("(");

                    }
                }

我的程序有什么问题?当我运行它时,我得到一个异常的东西,它不会工作?

 at java.util.Scanner.nextInt(Scanner.java:2166)        
 at java.util.Scanner.nextInt(Scanner.java:2119)
 at dice.project.DiceProject.main(DiceProject.java:20)

这也是我尝试输出时出现的情况?

4

3 回答 3

1

在第二个循环的第一次迭代中,你得到了一个java.lang.ArrayIndexOutOfBoundsException多数民众赞成,因为在这一行的第一次迭代中:

if(!inRun){
    if (m < rollDice.length - 1 && rollDice[m] == rollDice[m - 1]) {

此时变量m为 0,您正在尝试获取数组中不存在的索引,该索引rollDice[m - 1]将为 -1。修复它,您将看到您的程序正在运行。也许你需要稍微改变你的逻辑。

还可以尝试使用允许您调试应用程序的 IDE。

于 2013-11-14T18:26:40.110 回答
0

给定代码java.lang.ArrayIndexOutOfBoundsException出现异常,但是在更改 for 循环后它可以工作。我不确定这是你想要的:)

我做了什么

将您的 for 循环变量m从更改01。我猜它工作正常。

for(int m=1; m<rollDice.length; m++) {
 ....
}

正如我测试的那样,对于给定的输入 12,我得到的输出为 52562434(44)556.

于 2013-11-14T18:29:10.340 回答
0

ArrayIndexOutOfBounds

来自 Eclipse 调试器的快照。显然,没有检查边界条件。当m=0查找索引的数组元素m-1时,这会导致ArrayIndexOutOfBoundsException第一次迭代本身。

于 2013-11-14T18:39:19.503 回答