자바를 이용한 버블 정렬 구현 중 문제가 발생합니다.


import java.util.Scanner;

public class BubbleSort {
    public static void main(String[] args) {
        int inputNumber = 0, temp = 0;
        int[] bubbleArray = new int[5];

        Scanner scanner = new Scanner(System.in);

        System.out.println("============================");
        for(int i = 0; i < bubbleArray.length; i++) {
            System.out.print("Input Number : ");
            inputNumber = scanner.nextInt();
            bubbleArray[i] = inputNumber;
        }

        for(int i = 0; i < bubbleArray.length; i++) {
            for(int j = 1; j < bubbleArray.length - 1; j++) {
                if(bubbleArray[i] > bubbleArray[j]) {
                    temp = bubbleArray[i];
                    bubbleArray[i] = bubbleArray[j];
                    bubbleArray[j] = temp;
                } else {
                    break;
                }
            }
        }

        System.out.println("Complete Bubble Sorting Result :" + bubbleArray);
        System.out.println("============================");
        scanner.close();
        System.exit(0);
    }
}

간단하게 5 개의 수를 임의로 입력받아 버블 정렬을 수행하는 코드를 작성하고 있습니다. inputNumber 에 입력받은 값을 정렬 후 출력하면 아래와 같은 이상한 형태의 숫자가 출력됩니다. 어디가 문제일까요?

이미지


조회수 64


1 답변


배열은 값의 집합이라고 생각하시면 됩니다. 질문하신 부분처럼 배열을 직접 출력하게 될 경우 배열의 주소 값이 출력됩니다.

배열 안의 특정 값에는 인덱스를 통해서 접근합니다. 아래는 몇가지 예시입니다.

int[] bubbleArray = {1, 2, 3, 4, 5};

System.out.println(bubbleArray);  //주소값 출력
System.out.println(bubbleArray[0]); // 1

for (int index = 0; index < bubbleArray.length; index++) {
    System.out.println(bubbleArray[index]);
} 

for (int index : bubbleArray) {
    System.out.println(index);
}

System.out.println(Arrays.toString(bubbleArray));

  • 2016년 11월 11일에 작성됨
    Software Engineer

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close