-
[네이버클라우드 캠프/1주차] 배열 (feat.전화번호부)네이버클라우드 캠프 | BE/Java 과제 2023. 3. 22. 18:19728x90
3/16(목) 네이버크라우드 캠프 5일 차에 배열을 배우며,
배열의 출력에 익숙해진 뒤 전화번호부를 만들어 구동시키는 문제를 받았습니다.
살짝... 쿵... 어려웠지만 생각에 대해 정리해보려고 합니다. (가보자고~!)
❓아래의 클래스를 채워 넣고, 메인이 있는 클래스에서 호출하세요.
클래스 PhoneInfo
String[] name = new String [100];
String [] phoneNum = new String [100];
int i = 0;
//이름과 번호를 배열에 저장
public void insertPhoneInfo(String name, String number) {
}
//모든 PhoneInfo 출력
public void printAllPhoneInfo() {
}
//번호에 해당하는 이름과 번호 출력
public void printPhoneInfo(int index) {
}순서대로 차근차근해보며 어떤 조건이 필요한지 확인해 봅시다.
1. 이름과 번호를 배열에 저장하는 메서드
// 이름과 번호를 배열에 저장 public void insertPhoneInfo(String name, String number) { this.name[i] = name; this.number[i] = number; i++; }
위의 코드에서 가장 중요한 것은 i++입니다.
배열의 다음 인덱스에 값을 저장하기 위한 변수로
이름과 번호를 배열에 저장할 때마다 i++가 되어 다음 인덱스에 값을 저장할 수 있게 됩니다.
2. 모든 PhoneInfo를 출력하는 메서드
// 모든 PhoneInfo 출력 public void printAllPhoneInfo() { for(int i = 0; i < name.length; i++) { // name.length와 phoneNum.lenght 모두 가능 System.out.printf("이름 : %s, 번호 : %s\n", name[i], phoneNum[i]); } }
name.length 혹은 phoneNum.length를 작성하여 입력되어 있는 배열까지만 출력할 수 있도록 해줍니다.
100과 같은 수가 for문의 조건식에 작성되어 있다면, 채워지지 않은 배열의 값들은 null 값으로 출력될 것입니다.
3. 번호에 해당하는 이름과 번호 출력
// 번호에 해당하는 이름과 번호 출력 public void printPhoneInfo(int index) { if(name[index] != null) { System.out.println("이름 : %s, 번호 : %s\n", name[index], phoneNum[index]); } else { System.out.println("해당 인덱스로 저장된 정보가 없습니다."); } }
4. PhoneInfo를 호출하는 메인 클래스
import chap99_etc.game.PhoneInfo; // import : PhoneInfo의 위치 public class _09_phoneInfo { public static void main(String[] args) { PhoneInfo pi = new PhoneInfo(); pi.insertPhoneInfo("홍길동", "010-0000-0000"); pi.insertPhoneInfo("이순신", "010-1111-1111"); pi.insertPhoneInfo("김한슬", "010-2222-2222"); System.out.println("------------------ 2번 호출 ------------------"); pi.printPhoneInfo(2); System.out.println("------------------ 3번 호출 ------------------"); pi.printPhoneInfo(3); System.out.println("----------------- 전체 호출 -----------------"); pi.printAllPhoneInfo(); } }
<출력>
------------------ 2번 호출 ------------------
이름 : 김한슬, 번호 : 010-2222-2222
------------------ 3번 호출 ------------------
해당 인덱스로 저장된 정보가 없습니다.
----------------- 전체 호출 -----------------
이름 : 홍길동, 번호 : 010-0000-0000
이름 : 이순신, 번호 : 010-1111-1111
이름 : 김한슬, 번호 : 010-2222-2222하나의 클래스에 모두 구현하는 것이 아니라
클래스를 구분하여 클래스를 작성하는 연습을 해야 할 것 같습니다!
(오랜만에 블로그를 작성하니 감회가 새롭네요.. 나 그리고 모두들 화이팅!)
'네이버클라우드 캠프 | BE > Java 과제' 카테고리의 다른 글
[네이버클라우드 캠프/2주차] 반올림 하기 (0) 2023.04.11 [네이버클라우드 캠프/2주차] 클래스의 생성과 배열 관련 메서드 (1) 2023.04.11 [네이버클라우드 캠프/1주차] 배열의 출력 (0) 2023.03.22 [네이버클라우드 캠프/1주차] 트리 모양의 별 (0) 2023.03.22 [네이버클라우드 캠프/1주차] 369 게임 (0) 2023.03.20