使用数组 + for 循环时出现“线程主 java.lang.arrayindexoutofboundsexception 中的异常”
Posted
技术标签:
【中文标题】使用数组 + for 循环时出现“线程主 java.lang.arrayindexoutofboundsexception 中的异常”【英文标题】:"exception in thread main java.lang.arrayindexoutofboundsexception" when using an array + for loop 【发布时间】:2015-01-04 06:46:21 【问题描述】:当我编写这段代码来提示用户要输入多少个数字时,我收到一条错误消息:“thread main java.lang.arrayindexoutofboundsexception 中的异常”
PS:注意我是用一个int + for循环数组来写的。
import java.util.*;
public class Pr8
public static void main(String[] args)
Scanner scan = new Scanner (System.in);
//Prompt the user for how many numbers are going to be entered.
System.out.print("*Please write how many numbers are going to be entered: ");
int a = scan.nextInt();
int[] n = new int[a];
for (int i = 0; i < a; i++)
System.out.print("*Please enter an enteger: ");
n[a] = scan.nextInt();
//for
//main
//Pr8
【问题讨论】:
那个 for loob 每次都会得到你 ;) 【参考方案1】:改变
n[a] = scan.nextInt();
到
n[i] = scan.nextInt();
a
不是只有 a
元素的数组中的有效索引。有效索引为 0 到 a-1。
【讨论】:
@Bader ,n
是包含a
元素的数组,其有效索引为n
0 到a-1 而不是a
。这是因为数组索引从 0 而不是 1 开始
@Bader 您正在循环使用i
变量,因此我假设您希望在循环的每次迭代中将新输入存储在数组的第 i 个位置。您不能将其存储在a
的位置,因为在您创建的数组中没有这样的位置。
如果你希望能够做到 n.getElementWithValue(...) 使用 arraylist (或其他列表实现),那么你可以这样做(使用 n Arraylist of Strings) n.get("This字符串")
@Eran 你能在这里看看我的问题吗:***.com/questions/27181778/… ///// 我做的程序是 9 的补码来处理 java 中的加减法,但是有一些问题它!!以上是关于使用数组 + for 循环时出现“线程主 java.lang.arrayindexoutofboundsexception 中的异常”的主要内容,如果未能解决你的问题,请参考以下文章
Java - 在 for 循环中使用“继续”时出现未处理的异常错误?
在python中使用for循环时出现JSONDecodeError [重复]