0

我的教授让我用 Java 做以下作业,但我在尝试执行代码时出错。

请看一下代码,让我知道是什么导致了错误?代码保存到 Reverse.java 文件中。

package javaapplication44;
import java.util.Scanner;
public class Reverse {
    public static void main (String[] args) {
        String Fname[] = new String[4];
        Scanner s = new Scanner(System.in);
        for (int i=0; i<=4; i++) {
            System.out.println("\n Enter Something: ");
            Fname[i] = s.nextLine();
        }
        System.out.println ("*** The String has been Reversed ***");
        for (int i=4; i>0; i--) {
            System.out.println (Fname[i]);
        }
    }
}

错误文字:

线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 4 at javaapplication44.Reverse.main(Reverse.java:14)

4

3 回答 3

3

当你取 4 个元素数组时,你必须计数小于 4 不小于等于 4。第一个循环将以 i< 4 为条件

而且第二个循环也将以 i>3 为条件

希望它会起作用

于 2012-11-04T10:22:16.517 回答
1

数组索引从零开始

改变

 for (int i=0; i<=4; i++) {

 for (int i=0; i<4; i++) {

另外,在您的第二个 for 循环中,从i=3

  for (int i=3; i>0; i--) {

假设您的数组长度为 4,则最后一个索引为 3。

只要记住这一点:

 LastINdexOfAnArray = Array_Length -1;
于 2012-11-04T10:12:51.017 回答
0

改变...

for (int i=0; i<=4; i++) {

...到...

for (int i=0; i<4; i++) {

您正在迭代一个超出数组大小的数组,得到ArrayIndexOutOfBoundsException异常。

您还需要在第二个循环中考虑到这一点。

于 2012-11-04T10:12:34.570 回答