Javaでint[]型を使って宣言した複数の数字を、二重ループのfor文と、swapを使って昇順にソートし表示するプログラムを作っています。
間違ってはないはずなのですが、53行目のSysten.out.ptint(sortAsc[i] + ", ");でソート後の値を表示しようとすると、
■ソート後の配列 sortAsc の中身
7, 9, 10, 15, 16, 28,
となり、なぜか ”30” が表示されません。
何処が間違っているか教えてください。
よろしくお願いいたします。
コード public static void main(String[] args) { // int[]型の変数 sortAsc を作成する int[] sortAsc = {15, 7, 10, 9, 16, 30, 28}; System.out.println("■ソート前の配列 sortAsc の中身"); // 配列 sortAsc の値を表示する(ソート前) for (int i = 0; i < sortAsc.length; i++) { System.out.print(sortAsc[i] + ", "); } // 改行 System.out.println(""); System.out.println(""); System.out.println("■ソート後の配列 sortAsc の中身"); // 配列 sortAsk の各要素を昇順にソートする // ソート基準点のループ for (int i = 0; i < sortAsc.length - 1; i++) { for (int j = i; j < sortAsc.length; j++) { // sortAsc[i] が sortAsc[j]より大きい場合 if (sortAsc[i] >= sortAsc[j]) { // 値を交換 int swap = sortAsc[i]; sortAsc[i] = sortAsc[j]; sortAsc[j] = swap; } } // 配列 sortAsc の全要素の値を表示する(ソート後) System.out.print(sortAsc[i] + ", "); } }
実行結果
■ソート前の配列 sortAsc の中身
15, 7, 10, 9, 16, 30, 28,
■ソート後の配列 sortAsc の中身
7, 9, 10, 15, 16, 28,