cherrrrry
@cherrrrry

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!

降順に並べる方法

キーボード入力された5つの整数を降順に整列した後に、出力して終了するプログラムを作りたいです。
エラーが出てしまいます。どうしたら良いでしょうか。29F0E49E-1D86-4ACC-A124-4E525B2967F0.jpeg

0

3Answer

エラーメッセージあるように、入力された空文字列 "" は数値に変換できないため Integer.parseInt() が例外 NumberFormatException をスローしています。 try-catch でこの例外を処理してください。

0Like

キーボード入力された5つの整数を降順に整列した後に、出力して終了するプログラム

整数が5個未満のため、例外が起きていると思われます。
整数を5つ、5行に分けて入力すれば正しく動作します。

0Like

ソースコードを以下のように修正することで、入力エラーが起きた際に再入力を促すことができます。お試しください。

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Sort {
    public static void main(String[] args) throws Exception {
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
            int[] number = new int[5];
            for (int i = 0; i < number.length; i++) {
                try {
                    System.out.print("" + (i + 1) + "番目の整数: ");
                    number[i] = Integer.parseInt(reader.readLine());
                } catch (Exception ignored) {
                    System.out.println("" + (i + 1) + "番目の入力に誤りがあります");
                    i--;
                }
            }
            Arrays.sort(number);
            for(int Max: number) {
                System.out.println(Max);
            }
        } catch (Exception e) {
            System.out.println(e);
        }

    }
}
0Like

Your answer might help someone💌