PhoneBook
이라는 클래스에 String
타입으로 된 name
, phoneNum
을 갖고, 이에 대한 getter
, setter
를 준비한다.
PhoneBook
객체 4개를 갖는 객체 배열
을 선언한다.
입력
, 출력
, 검색
, 종료
, 수정
기능을 갖도록 만든다.
입력
: 이름과 전화번호를 입력받아 저장
출력
: 저장된 연락처를 모두 출력
검색
: 이름 혹은 전화번호를 입력받아 연락처에서 찾았으면 출력, 못 찾았으면 "찾지 못했습니다" 출력
종료
: 종료 선택시 종료
수정
: 이름을 입력받고, 해당하는 이름의 연락처가 배열상에 존재하면 새 번호를 입력받아 수정, 찾지 못했으면 "찾지 못했습니다" 출력
PhoneBook
// 멤버 변수로 이름, 전화번호를 갖는다. private String name; private String phoneNum; // 이름을 저장할 메소드 public void setName(String name) { this.name = name; } // 이름을 가져올 메소드 public String getName() { return this.name; } // 전화번호를 저장할 메소드 public void setPhoneNum(String phoneNum) { this.phoneNum = phoneNum; } // 전화번호를 가져올 메소드 public String getPhoneNum() { return this.phoneNum; }
PhoneBookMain
Scanner sc = new Scanner(System.in); // 4개짜리 연락처 객체 배열 선언 PhoneBook[] list = new PhoneBook[4]; // while문의 실행 여부를 판단할 변수 boolean run = true; // 연락처를 저장할 위치의 index. int pBookIndex = 0; while (run) { // 메뉴 출력 System.out.println("=========================================="); System.out.println("1. 입력 | 2. 출력 | 3. 검색 | 4. 종료 | 5. 수정"); System.out.println("=========================================="); // 메뉴 선택문 출력 System.out.print("메뉴 입력 : "); // 메뉴 선택 번호를 입력받는다. int menuSel = sc.nextInt(); // 메뉴 선택에 따른 switch 분기 switch (menuSel) { case 1: if (pBookIndex < list.length) { // contact 객체를 동적 생성한다. PhoneBook contact = new PhoneBook(); System.out.print("이름 입력 : "); String nameInput = sc.next(); contact.setName(nameInput); System.out.print("번호 입력 : "); String numInput = sc.next(); contact.setPhoneNum(numInput); // 객체 배열에 동적으로 생성된 contact를 대입한다. list[pBookIndex] = contact; ++pBookIndex; } else { System.out.println("연락처가 가득 찼습니다."); } break; case 2: // 객체 배열을 돌며, 요소가 비어있지 않은 경우에만 출력한다. for (int i = 0; i < list.length; i++) { if (list[i] != null) { System.out.println("이름 : " + list[i].getName()); System.out.println("전화번호 : " + list[i].getPhoneNum()); } } System.out.println(); break; case 3: System.out.print("이름 혹은 번호를 입력하여 검색 : "); String searchInput = sc.next(); for (int i = 0; i < list.length; i++) { // 요소가 null이 아니며, 입력된 문자열이 저장된 요소와 일치하는 경우, if (list[i] != null && (searchInput.equals(list[i].getName()) || searchInput.equals(list[i].getPhoneNum()))) { // 찾은 것으로 판단하고, 해당하는 이름과 전화번호를 출력한다. System.out.println("찾았습니다."); System.out.println("이름 : " + list[i].getName()); System.out.println("전화번호 : " + list[i].getPhoneNum()); break; } else if (i == (list.length - 1)) { System.out.println("찾을 수 없습니다."); } } break; case 4: run = false; break; case 5: // 수정하고 싶은 번호를 가진 사람의 이름 입력 System.out.print("이름 입력 : "); searchInput = sc.next(); for (int i = 0; i < list.length; i++) { > // 해당 요소의 이름이 입력한 이름과 일치하면, if (searchInput.equals(list[i].getName())) { // 바꿀 번호를 입력받는다. System.out.print("바꿀 번호 입력 : "); String numInput = sc.next(); // 해당 요소의 전화번호를 입력받은 번호로 바꾼다. list[i].setPhoneNum(numInput); break; // 위 조건에 걸리지 않고 배열의 마지막 요소까지 왔으면, 찾는 게 없다는 뜻이므로 } else if (i == (list.length - 1)) { System.out.println("찾을 수 없습니다."); } } break; default: System.out.println("잘못 입력하셨습니다."); } } System.out.println("프로그램 종료.");
→
==========================================
1. 입력 | 2. 출력 | 3. 검색 | 4. 종료 | 5. 수정
==========================================
메뉴 입력 : 1
이름 입력 : 김철수
번호 입력 : 010-111-1111
==========================================
1. 입력 | 2. 출력 | 3. 검색 | 4. 종료 | 5. 수정
==========================================
메뉴 입력 : 1
이름 입력 : 김두박
번호 입력 : 010-222-2222
==========================================
1. 입력 | 2. 출력 | 3. 검색 | 4. 종료 | 5. 수정
==========================================
메뉴 입력 : 1
이름 입력 : 아무개
번호 입력 : 010-333-3333
==========================================
1. 입력 | 2. 출력 | 3. 검색 | 4. 종료 | 5. 수정
==========================================
메뉴 입력 : 1
이름 입력 : 홍길동
번호 입력 : 010-444-4444
==========================================
1. 입력 | 2. 출력 | 3. 검색 | 4. 종료 | 5. 수정
==========================================
메뉴 입력 : 1
연락처가 가득 찼습니다.
==========================================
1. 입력 | 2. 출력 | 3. 검색 | 4. 종료 | 5. 수정
==========================================
메뉴 입력 : 2
이름 : 김철수
전화번호 : 010-111-1111
이름 : 김두박
전화번호 : 010-222-2222
이름 : 아무개
전화번호 : 010-333-3333
이름 : 홍길동
전화번호 : 010-444-4444==========================================
1. 입력 | 2. 출력 | 3. 검색 | 4. 종료 | 5. 수정
==========================================
메뉴 입력 : 3
이름 혹은 번호를 입력하여 검색 : 홍길동
찾았습니다.
이름 : 홍길동
전화번호 : 010-444-4444
==========================================
1. 입력 | 2. 출력 | 3. 검색 | 4. 종료 | 5. 수정
==========================================
메뉴 입력 : 3
이름 혹은 번호를 입력하여 검색 : 누구~
찾을 수 없습니다.
==========================================
1. 입력 | 2. 출력 | 3. 검색 | 4. 종료 | 5. 수정
==========================================
메뉴 입력 : 3
이름 혹은 번호를 입력하여 검색 : 010-333-3333
찾았습니다.
이름 : 아무개
전화번호 : 010-333-3333
==========================================
1. 입력 | 2. 출력 | 3. 검색 | 4. 종료 | 5. 수정
==========================================
메뉴 입력 : 5
이름 입력 : 아무개
바꿀 번호 입력 : 010-1234-5678
==========================================
1. 입력 | 2. 출력 | 3. 검색 | 4. 종료 | 5. 수정
==========================================
메뉴 입력 : 2
이름 : 김철수
전화번호 : 010-111-1111
이름 : 김두박
전화번호 : 010-222-2222
이름 : 아무개
전화번호 : 010-1234-5678
이름 : 홍길동
전화번호 : 010-444-4444==========================================
1. 입력 | 2. 출력 | 3. 검색 | 4. 종료 | 5. 수정
==========================================
메뉴 입력 : 4
프로그램 종료.