我正在根据随机数数组的输出创建一个显示(x)/ 5的应用程序。数组中有5个变量,它们生成0到1之间的数字.0表示不好,1表示良好。如果他们说3/5,活动将切换到相应的活动。
keys
HomeScreen活动:
listofkeys
答案 0 :(得分:1)
您正在创建一个只有4个空格的数组,但之后您尝试分配5个值:
// Setting up an array of 5 random number generators between 0 and 1
int[] guesser = new int[4]; // four spaces
guesser[0] = (int) Math.random();
guesser[1] = (int) Math.random();
guesser[2] = (int) Math.random();
guesser[3] = (int) Math.random();
guesser[4] = (int) Math.random(); // 5th value
将其更改为:
int[] guesser = new int[5];
答案 1 :(得分:0)
您应该扫描stacktrace错误消息并查找具有您编写的类和方法名称的行。执行此操作时,您会发现:
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=4; index=4
at app.com.example.android.oraclethedeciscionmaker.HomeScreen.onClick(HomeScreen.java:23)
这告诉您错误发生在HomeScreen.java的第23行。根据错误,这似乎是
行guesser[4] = (int) Math.random();
如果仔细查看guesser
的声明,就已经分配了4个数组元素。 Java数组从索引0开始,因此允许使用的最大索引是3.您可以通过更改声明来创建包含5个元素的数组,从而轻松解决此问题:
int[] guesser = new int[5];