Menu
Coddy logo textTech

잔액 조회

Coddy Lua 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 70개 중 22번째.

challenge icon

챌린지

쉬움

여러분의 디지털 뱅크가 점차 형태를 갖추어가고 있습니다! 계좌는 입금을 받을 수 있고, 적절한 잔액 확인을 통해 출금을 처리할 수 있습니다. 이제 잔액을 조회하는 getter 메서드를 추가하고, 실제 은행 시나리오에 맞춰 모든 기능을 통합해 보겠습니다.

기존 파일들을 계속해서 수정해 나갈 것입니다:

  • Account.lua: 현재 잔액을 반환하는 :getBalance() 메서드를 추가하세요. 이는 이전에 배운 getter 패턴을 따르는 것으로, 내부 데이터에 직접 접근하는 대신 제어된 방식으로 접근할 수 있게 해줍니다. 기존의 모든 기능(생성자, 입금 및 출금 메서드)은 그대로 유지하세요.
  • main.lua: 계좌를 생성하고 일련의 은행 업무를 실행하여 입금, 출금, 잔액 확인이 실제 상황에서 어떻게 함께 작동하는지 보여주세요.

다섯 개의 입력을 받게 됩니다:

  1. 초기 입금액
  2. 첫 번째 출금액
  3. 두 번째 입금액
  4. 두 번째 출금액
  5. 세 번째 출금액

메인 파일에서 계좌를 생성하고 다음 작업을 순서대로 수행하세요:

  1. 초기 금액을 입금한 후, :getBalance()를 사용하여 잔액을 출력합니다.
  2. 첫 번째 금액을 출금한 후, 잔액을 출력합니다.
  3. 두 번째 금액을 입금한 후, 잔액을 출력합니다.
  4. 두 번째 금액을 출금한 후, 잔액을 출력합니다.
  5. 세 번째 출금을 시도한 후, 잔액을 출력합니다.

출금에 실패할 경우 잔액을 출력하기 전에 Insufficient funds가 출력된다는 점을 기억하세요.

예를 들어, 입력값이 200, 50, 100, 180, 100인 경우 출력은 다음과 같아야 합니다:

200
150
250
70
Insufficient funds
70

계좌는 200에서 시작하여 첫 번째 출금 후 150으로 줄어들고, 다시 입금 후 250으로 늘어났다가, 180을 출금한 후 70이 됩니다. 마지막 100의 출금 시도는 잔액 부족으로 실패하므로 잔액은 70으로 유지됩니다.

직접 해보기

-- Account 모듈 불러오기
local Account = require('Account')

-- 다섯 개의 입력값 읽기
local initialDeposit = tonumber(io.read())
local withdrawal1 = tonumber(io.read())
local deposit2 = tonumber(io.read())
local withdrawal2 = tonumber(io.read())
local withdrawal3 = tonumber(io.read())

-- 단일 계좌 생성
local account = Account:new()

-- 초기 금액을 입금하고 :getBalance()를 사용하여 잔액 출력
account:deposit(initialDeposit)
print(account:getBalance())

-- 첫 번째 출금 시도 및 잔액 출력
account:withdraw(withdrawal1)
print(account:getBalance())

-- 두 번째 금액을 입금하고 잔액 출력
account:deposit(deposit2)
print(account:getBalance())

-- 두 번째 출금 시도 및 잔액 출력
account:withdraw(withdrawal2)
print(account:getBalance())

-- 세 번째 출금 시도 및 잔액 출력
account:withdraw(withdrawal3)
print(account:getBalance())

Object Oriented Programming의 모든 레슨