• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

2-1장 (클래스, 객체, 참조변수 3) 마지막 값이 덮어씌워지는 문제

20.12.29 17:34 작성 조회수 136

0

package sec02;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class PhoneBook {

static Person[] members = new Person[100];
static int count = 0;

public static void main(String[] args) {

try {
Scanner in = new Scanner(new File("./Chapter1/input.txt"));

while(in.hasNext()) {
members[count] = new Person();
members[count].name = in.next();
members[count].number = in.next();
count++;
System.out.println(count + members[count].name + members[count].number);
}

in.close();

} catch (FileNotFoundException e) {
System.out.println("No file");
return;
}

bubbleSort();

for (int i = 0; i < count; i++)
System.out.println(members[i].name + " : " + members[i].number);
}

static void bubbleSort() {
for (int i = count-1; i > 0; i--)
for (int j = 0; j < i; j++)
if (members[j].name.compareToIgnoreCase(members[j+1].name) > 0) {
Person tmp = members[j]; members[j] = members[j+1]; members[j+1] = tmp;
}
}
}

위와 같이 코드를 작성했는데요, 실행해보면 

1Susan01087945123

2Han01085462316

3Kim01012345678

4Lee01098765432

5Park01078965412

Park : 01078965412

Park : 01078965412

Park : 01078965412

Park : 01078965412

Park : 01078965412

Process finished with exit code 0

이렇게 출력할 때 마지막 값이 덮어씌워져서 나옵니다. while문에서 객체 생성하고 값 대입하는 것까지는 정상적으로 된 것 같은데, 덮어씌운 것 같은 결과가 나타나는 이유가 무엇일까요?

답변 0

답변을 작성해보세요.

답변을 기다리고 있는 질문이에요.
첫번째 답변을 남겨보세요!