程序应在用户输入值后打印出存储在大小为5的数组中的值。
这是我的代码:
import java.util.Scanner;
public class Arrays_Qu1 {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int arr[]= new int [5];
System.out.println("Enter a number");
int i;
for (i=0;i<arr.length;i++) {
arr[i]=sc.nextInt();
}
System.out.println(arr[i]);
}
}
输入第5个值后,程序不会终止,而是抛出:
线程中的异常&#34; main&#34; java.lang.ArrayIndexOutOfBoundsException:5
答案 0 :(得分:2)
因为您正在循环外打印并且它正在尝试打印超出数组范围的arr [5]。如果要打印每个元素,打印应该循环。
int i;
for (i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
System.out.println(arr[i]); // to print each element
}
// value of i is now 5, so arr[i] is invalid
System.out.println(arr[i-1]); // to print last element
System.out.println(Arrays.toString(arr)); // to print whole array
答案 1 :(得分:0)
您应该访问数组的最后一个元素,如:
System.out.println(arr[i - 1])
但我相信只打印数组的最后一个元素并不是你想要的。所以你应该移动行
System.out.println(arr[i])
在for循环中它应该没问题。