@xiangqihumaben

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Javaでエラーが解決できません、、、

解決したいこと

ここに解決したい内容を記載してください。
プログラミングの勉強をしているのですが、エラーがどうしても解決できません
解決方法を教えてください
例)
Ruby on RailsでQiitaのようなWebアプリをつくっています。
記事を投稿する機能の実装中にエラーが発生しました。
解決方法を教えて下さい。

発生している問題・エラー

出ているエラーメッセーException in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
	at reidai.siken.main(siken.java:22)ジを入力

例)

NameError (uninitialized constant World)

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

ソースコーimport java.util.Scanner;
public class siken {
	public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	
	System.out.println("ソフトボール投げの参加人数を入力してください。");
	int num = sc.nextInt();
	int[]kiroku =new int[num];
//入力
	System.out.println(num + "人分の記録を入力してください。");
	for(int i=0; i <= num-1;i++) {
		kiroku[i]=sc.nextInt();
	}
	int[]juni =new int[num];
	for(int k=0; k<=num-1; k++) {
		juni[k]= juni[k]+1;
	}
//順位付け
	for(int i=0 ;i<num-1;i++) {
		for(int j=i+1; i<num;j++) {
	if(kiroku[i] < kiroku[j]) {		
	juni[i]++;
	}else {
			if(kiroku[i] > kiroku[j]) {
			juni[j]++;
	}
		}
	}
	}
//表示
	System.out.println("ソフトボール投げ記録表");
	System.out.println("番号" + "\t" + "記録"  +"\t" + "順位");
	for(int i=1; i<=num-1;i++) {
		System.out.printf("%2d\t%2d%n",i,kiroku[i]+"m" ,juni[i]);
	}
	sc.close();
  }
}
ドを入力

例)

def greet
  puts Hello World
end

自分で試したこと

ここに問題・エラーに対して試したことを記載してください。

0 likes

2Answer

エラーメッセージは siken.java の22行目で配列の範囲外アクセスが起きていることを示しています。その周辺で配列の添え字がおかしくなる条件を探せば原因が見つかります。

エラー箇所の少し上、添え字 j についてのループ for(int j=i+1; i<num;j++) { の終了条件 i<numj と無関係なため、ループが終了しなくなっているのが原因です。終了条件を j<num に修正してください。

1Like

Comments

  1. @xiangqihumaben

    Questioner

    ありがとうございます!
    解決できました!

順位付けをしている2重forでfor(int j = i + 1; i < num; j++) {}と書いていて,終了条件i < num;が無限に達成されないためkiroku[j]juni[j]java.lang.ArrayIndexOutOfBoundsExceptionが出ているのでそこを修正しましょう

0Like

Comments

  1. @xiangqihumaben

    Questioner

    ありがとうございます!
    おかげで解決できました!

Your answer might help someone💌