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

최승호님의 프로필 이미지
최승호

작성한 질문수

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

문제와 풀이2

MethodEx4

작성

·

129

0

[질문 내용]
int 값이 21억 까지로 제한되기에 혹시 이 값을 long으로 바꾸고 싶은데 스캐너에서 롱으로 어떻게 코드를 바꿔야 될지 모르겠습니다. long만 바꾸면 뒤에l이 없어서 int변수로 인식을해서 어떻게 해야될지 모르겠습니다

스크린샷 2024-03-16 052155.png

답변 1

0

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

문제의 정의를 int 대신 long으로 변경하고 싶으신 경우라면

scanner.nextInt()를 scanner.nextLong()으로 변경하고,

입,출금액 및 잔액의 타입을 int 대신 long으로 변경하면 됩니다.

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

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

            int choice = scanner.nextInt();
            long amount;

            switch (choice) {
                case 1:
                    System.out.print("입금액을 입력하세요: ");
                    amount = scanner.nextLong();
                    balance = deposit(balance, amount);
                    break;
                case 2:
                    System.out.print("출금액을 입력하세요: ");
                    amount = scanner.nextLong();
                    balance = withdraw(balance, amount);
                case 3:
                    System.out.println("현재 잔액: " + balance + "원");
                    break;
                case 4:
                    System.out.println("시스템을 종료합니다.");
                    return;
                default:
                    System.out.println("올바른 선택이 아닙니다. 다시 선택해주세요.");
            }

        }

    }

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

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

        return balance;
    }

감사합니다.

최승호님의 프로필 이미지
최승호

작성한 질문수

질문하기