Random random = new Random();
int numDigits;
int[] secretNumber = new int[numDigits];
public int[] convertNumToDigitArray(String number){
int[] numToDigitArray = new int[numDigits];
for (int i = 0; i<number.length(); i++){
numToDigitArray[i] = number.charAt(i);
}
return numToDigitArray;
}
public int getNumDigits(){
return numDigits;
}
public int[] getSecretNumber(){
return secretNumber;
}
public void setNumDigits(int numDigits){
this.numDigits=numDigits;
}
public void generateNewSecret(){
int number = random.nextInt(((int)Math.pow(10, numDigits) - ((int)Math.pow(10, numDigits-1)))) + ((int)Math.pow(10, numDigits-1));
int temporary = numDigits;
for (int i = 0; i < numDigits; i++){
secretNumber[i] = (int)(number/(Math.pow(10, temporary--))); //here's where the exception is thrown!
if (number < 10)
break;
number = number%((int)(Math.pow(10, temporary--)));
temporary--;
}
}
大家好,我遇到了一个问题,需要一些帮助。我已经编写(并且正在调试)一个程序,该程序生成一个数字,将该数字放入一个数组中,然后将用户猜测与该数字进行比较。我坚持的一点是,当计算机生成数字时,我放入的数组抛出了索引超出范围的异常。这一定意味着(据我所知)该指数低于零。但是当我单独运行程序并检查索引时,它从 0 开始。有问题的方法独立运行并生成数组而不抛出异常,但是当从“母程序”调用它时抛出异常。它指向代码中在循环中填充数组的行。
任何帮助将不胜感激:)