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]);
        }
    }
}

エラー テキスト:

スレッド「メイン」での例外 java.lang.ArrayIndexOutOfBoundsException: 4 at javaapplication44.Reverse.main(Reverse.java:14)

4

3 に答える 3

3

4 つの要素の配列を使用する場合、4 未満の数をカウントする必要があります。

また、2 番目のループは i>3 と条件付けられます

それがうまくいくことを願っています

于 2012-11-04T10:22:16.517 に答える
1

配列インデックスはゼロから始まります

変化する

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

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

また、2 番目の 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例外が発生します。

2 番目のループでもこれを考慮する必要があります。

于 2012-11-04T10:12:34.570 に答える