我是Java的新手,在创建一个程序以打印6个随机数字的彩票时,我收到一个ArrayIndexOutOfBounds
错误,我无法弄清楚如何解决。这就是我所拥有的。
import java.util.Random;
public class DebugMeOne {
static int[] lottoNumbers = new int[6];
public static void main(String[] args)
{
generateNumbers();
printNumbers();
}
private static void generateNumbers()
{
int ticketNumber;
Random generateRandomNumber = new Random();
for (int count = 0; count < lottoNumbers.length + 1; count++)
{
ticketNumber = 1 + generateRandomNumber.nextInt(59);
lottoNumbers[count] = ticketNumber;
}
}
private static void printNumbers()
{
for (int count = 0; count < lottoNumbers.length + 1; count++)
{
if (count < 5)
if (count == 4)
System.out.print(lottoNumbers[count]);
else
System.out.print(lottoNumbers[count] + ", ");
else
System.out.println("\nPower Ball: "
+ lottoNumbers[count]);
}
}
}
我还有另一个程序必须为同一件事创建,只是略有不同的代码。我在这方面也遇到错误:
public class Lottery {
static ArrayList<Integer> lottoNumbers = new ArrayList<Integer>();
static int MAX_NUMBERS = 6;
public static void main(String[] args)
{
generateNumbers();
printNumbers();
}
private static void generateNumbers()
{
int ticketNumber;
Random generateRandomNumber = new Random();
for (int count = 0; count < MAX_NUMBERS; count++)
{
ticketNumber = 1 + generateRandomNumber.nextInt(59);
lottoNumbers.add(new Integer(ticketNumber));
}
}
private static void printNumbers()
{
int count = 0;
for( Integer number : numbers ) // enhanced for loop
{
if (count < 5)
if (count == 4)
System.out.print(number);
else
System.out.print(number + ", ");
else
{
System.out.println("\nPower Ball: " + number);
count++;
}
}
}
}
在这个我得到这个错误:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code
cannot find symbol
symbol: variable numbers
location: class debugmetwo.DebugMeTwo
at debugmetwo.DebugMeTwo.printNumbers(DebugMeTwo.java:52)
at debugmetwo.DebugMeTwo.main(DebugMeTwo.java:34)
Java Result: 1
您的for
循环计数超过了数组的length
。两个for循环都应像
for (int count = 0; count < lottoNumbers.length; count++)
另外,您不应该对用于打印逗号length
的count
比较中使用的值(5、4)进行硬编码。将该length
属性用作
for (int count = 0; count < lottoNumbers.length; count++)
{
if (count < lottoNumbers.length - 1) {
System.out.print(lottoNumbers[count]);
System.out.print(count == lottoNumbers.length - 2 ? "" : ", ");
} else {
System.out.println("\nPower Ball: "
+ lottoNumbers[count]);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句