인프런 커뮤니티 질문&답변

dkrdj5772님의 프로필 이미지
dkrdj5772

작성한 질문수

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

문제와 풀이2

섹션 9, 문제와 풀이 2 질문듧니다.

작성

·

122

0


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
섹션 9 문제와 풀이 2의 풀이를 switch문을 안 쓰고 if 문을 써서 다음과 같이 풀었는데 맞는 걸까요?

추가로, 이 문제에서 풀이로 switch문을 더 추천하는 걸까요?

 

package method.ex;

import java.util.Scanner;

public class MethodEx4 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int balance = 0;

        while (true) {
            System.out.println("--------------------------------------");
            System.out.println("1.입금 | 2.출금 | 3.잔액 확인 | 4.종료");
            System.out.println("--------------------------------------");

            System.out.print("선택: ");
            int choice = scanner.nextInt();

            if (choice == 1) {
                System.out.print("입금액을 입력하세요: ");
                int depositAmount = scanner.nextInt();
                balance = deposit(depositAmount, balance);
            } else if (choice == 2) {
                System.out.print("출금액을 입력하세요: ");
                int withdrawAmount = scanner.nextInt();
                balance = withdraw(withdrawAmount, balance);
            } else if (choice == 3) {
                System.out.println("현재 잔액: " + balance + "원");
            } else if (choice == 4) {
                System.out.println("시스템을 종료합니다.");
                break;
            } else {
                System.out.println("번호를 잘못 입력하였습니다. 다시 선택해주세요.");
            }
        }
    }

    public static int deposit(int depositAmount, int balance) {
        balance += depositAmount;
        System.out.println(depositAmount + "원을 입금하였습니다. 현재 잔액: " + balance + "원");
        return balance;
    }

    public static int withdraw(int withdrawAmount, int balance) {
        if (balance > -withdrawAmount) {
            balance -= withdrawAmount;
            System.out.println(withdrawAmount + "원을 출금하였습니다. 현재 잔액: " + balance + "원");
        } else {
            System.out.println(withdrawAmount + "원을 출금하려 했으나 잔액이 부족합니다.");
        }
        return balance;
    }
}

감사합니다!

답변 2

0

안녕하세요. dkrdj5772님, 공식 서포터즈 OMG입니다.

if문의 경우 if(조건) 에서 조건에 복잡한 로직을 추가할 수 있습니다만,

switch문의 경우

switch case 1: case 2: case 3 혹은 case 'A' case 'B' case 'C' 와 같이 단일한 값만을 포함시킬 수 있습니다.

따라서 메뉴번호 1,2,3을 고르는 본 강의 예제의 경우에는 case 문이 더 적합해 보입니다.

 

그리고

image

이 부분은 강의와 차이가 있네요.image

잔액: 200원, 출금액:300원일 때 -300원과 200원이 비교 되어 강의와의 차이가 있습니다.

 

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

dkrdj5772님의 질문에 대하여, 메서드와 조건문(특히 if문 대 switch문)에 관한 교육 내용에 관련된 기존 질문 링크를 찾았습니다. 이 링크는 선택된 문제 해결 방법(if 문 대비 switch 문)에 대한 비교와 정보를 제공할 수 있습니다.

  • 메서드 문제와 풀이 2 - 이 게시글에서는 if문을 사용한 문제 해결 방식에 대한 질문과, if문과 switch문 간의 차이점에 대한 답변을 찾아볼 수 있습니다. 게시글의 답변 부분에서는 if문 내부에서 breakreturn을 사용하는 방식의 차이점에 대해 설명하고 있습니다. 이는 님의 질문과 관련이 있어 보입니다.

위 기존 답변에는 if문과 switch문을 사용할 때의 차이점과 각각의 사용 케이스에 대한 설명이 포함되어 있습니다. 이를 통해 님께서 사용하신 if 문법의 적합성 및 switch 문 사용의 장단점을 이해하는데 도움이 될 것입니다. 프로그래밍에서 if문과 switch문의 사용 선택은 상황에 따라 다르지만, 가독성 및 특정 조건에 따른 실행 분기를 명확하게 구분해야 할 때 switch문을 선호하곤 합니다. 그러나 dkrdj5772님이 제시한 코드도 프로그램의 기능을 정상적으로 수행할 수 있는 유효한 방법 중 하나입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

dkrdj5772님의 프로필 이미지
dkrdj5772

작성한 질문수

질문하기