【发布时间】:2015-03-07 17:57:50
【问题描述】:
您好,我的程序无法使用ArrayIndexOutofBoundsExeption 运行。运行时出现此错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -35
at RoulleteChecker.main(RoulleteChecker.java:134)
这是我的代码:
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
public class RoulleteChecker {
public static void main( String args[] )
{
int a[] = new int[37];
for ( long roll = 1; roll <=99999999; roll++ ) {
a[0] = 1 + ( int ) ( Math.random() * 34);
switch ( a[0] ) {
case 0:
++a[1];
break;
case 1:
++a[2];
break;
case 2:
++a[3];
break;
case 3:
++a[4];
break;
case 4:
++a[5];
break;
case 5:
++a[6];
break;
case 6:
++a[7];
break;
case 7:
++a[8];
break;
case 8:
++a[9];
break;
case 9:
++a[10];
break;
case 10:
++a[11];
break;
case 11:
++a[12];
break;
case 12:
++a[13];
break;
case 13:
++a[14];
break;
case 14:
++a[15];
break;
case 15:
++a[16];
break;
case 16:
++a[17];
break;
case 17:
++a[18];
break;
case 18:
++a[19];
break;
case 19:
++a[20];
break;
case 20:
++a[21];
break;
case 21:
++a[22];
break;
case 22:
++a[23];
break;
case 23:
++a[24];
break;
case 24:
++a[25];
break;
case 25:
++a[26];
break;
case 26:
++a[27];
break;
case 27:
++a[28];
break;
case 28:
++a[29];
break;
case 29:
++a[30];
break;
case 30:
++a[31];
break;
case 31:
++a[32];
break;
case 32:
++a[33];
break;
case 33:
++a[34];
break;
case 34:
++a[35];
break;
}
}
JTextArea outputArea = new JTextArea();
outputArea.setText( "Lets see: " + a[0-35] );
JOptionPane.showMessageDialog( null, outputArea,
"Searching for the frequency: 99999999 times", JOptionPane.INFORMATION_MESSAGE );
System.exit( 1 );
}
}
拜托,我的头要炸了。我认为我的错误在 a 变量上。
【问题讨论】:
-
你觉得这个
a[0-35]有什么作用? -
巨大的开关块可以改成1-3行代码。
-
通过迭代来打印数组的内容。删除
a[0-35]。
标签: java swing indexoutofboundsexception