ABOUT ME

작디집(작은 디테일에 집착하는) 개발자, 김한슬 입니다.

Today
Yesterday
Total
  • [네이버클라우드 캠프/1주차] 배열 (feat.전화번호부)
    네이버클라우드 캠프 | BE/Java 과제 2023. 3. 22. 18:19
    728x90

    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

     

    하나의 클래스에 모두 구현하는 것이 아니라

    클래스를 구분하여 클래스를 작성하는 연습을 해야 할 것 같습니다!

    (오랜만에 블로그를 작성하니 감회가 새롭네요.. 나 그리고 모두들 화이팅!)

Designed by Tistory.