[자바]_전화번호부_2

Kingyj·2025년 1월 2일

전화번호부의 기능

뭐든지 큰 틀을 잡고 그 안의 세부적인 내용들을 정리하는 편이다.

전화번호부의 기능은 무엇이 있어야 할까?

  • (등록) - 최소한 이름과 전화번호를 등록해야겠지?
  • (목록) - 내가 등록한 전화번호 목록을 봐야 전화번호부라 할 수 있다.
  • (리스트화) - 여러 개의 전화번호가 저장되었다면, 몇 개가 저장되있는지 확인도 하고, 수정 / 삭제 시 유용하게 고유 번호를 지정하면 편리할 것이다.
  • (삭제) - 등록이 가능하다면 삭제도 가능해야한다.
  • (수정) - 오타나 여러 이후로 삭제 후 재등록하지 않고 수정으로 해결하면 역시 편리하다.

이 기능들만 있으면 최소한 전화번호부로써 기능은 할 수 있다.

! 본 프로젝트는 자바 복습을 위한 것으로 전화번호 검색기능 등은 구현하지 않았다. !


IntelliJ로 새로운 Java 프로젝트를 열어준다.

기본 세팅을 해주고 아래의 코드를 입력했다.

package com.ll;

import java.util.Scanner;

public class Main {
    public static void main (String[] args){
        App app = new App();
        app.run();
    }
}

class App {
    public void run(){
        System.out.println(" ================");
        System.out.println(" == 전화번호부 ==");
        System.out.println(" ================");

        Scanner scanner = new Scanner(System.in);

        while (true) {
            System.out.print("입력 : ");

            String cmd = scanner.nextLine();
            if (cmd.equals("종료")) break;

        }
        scanner.close();
    }
}

기본적인 코드를 짜봤다.
App이라는 Class를 만들었다.
이 코드를 실행하면 전화번호부라는 내용이 표기되고,
scanner를 통해 사용자로부터 입력을 받을 수 있다.
종료를 입력하면 프로그램이 종료된다.

프로그램 실행 > 사용자 입력을 받음 > "종료" 입력시 종료.

실행하면 전화번호부라는 (텍스트)를 표기해줘.
그리고(While) 사용자한테 입력을 받아.
만약에(If) 사용자가 종료를 입력하면 종료해.


전화번호 등록

else if (a.equals("등록")){
                System.out.print("이름 :");
                String content = scanner.nextLine();
                System.out.print("번호 :");
                String author = scanner.nextLine();
                System.out.println("번호가 등록되었습니다.");

if문에 else if를 추가해서 사용자가 등록을 입력하면
이름과 번호를 각각 입력받게한다.


전화번호 등록 (고유번호지정)

//(생략...)
Scanner scanner = new Scanner(System.in);

        int lastId = 0; //추가
//(생략...)
 if (a.equals("종료")) {
                break;
            } else if (a.equals("등록")){
                System.out.print("이름 :");
                String content = scanner.nextLine();
                System.out.print("번호 :");
                String author = scanner.nextLine();
                int id = ++lastId;
                System.out.println("%d번 번호가 등록되었습니다.".formatted(id));
                id++;

int lastId = 0에서 시작해서 전화번호를 등록하면 lastId에서 +1이되어 1번에 등록이된다.
%d번에 번호가 등록됬다는 알림으로 몇번에 저장되었는지 사용자에게 알린다.


전화번호 목록

//(생략...)
   int lastId = 0;
        ArrayList<String> wiseSayings = new ArrayList<>();
//(생략...)
   System.out.println(" %d번에 번호가 등록되었습니다.".formatted(id));
            } else if (cmd.equals("목록")){
                System.out.println("번호 / 이름 / 전화번호");
                System.out.println("===================");
                for (int i = wiseSayings.size() - 1; i >=0; i--) {
                    System.out.println(wiseSayings.get(i));
                }

ArrayList는 Java에서 제공하는 동적 배열을 구현한 클래스다. 내부적인 배열으로 조회 속도가 빠르다는 장점이있다. 크기가 커질수록 메모리 사용량이 증가하므로 간단한 데이터를 관리할 때 유용하다.

else if로 사용자가 목록을 입력하면 저장된 전화번호 목록을 보여준다. 최신 등록 순으로 보여주기 위해 for문으로 위와 같은 코드를 입력했다.


여기까지 전화번호부를 만들 기초적인 코드를 짜고
등록을 통해 전화번호 등록 및 목록을 보여주는 기능까지 구현했다.

0개의 댓글