잔액 조회
Coddy Lua 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 70개 중 22번째.
챌린지
쉬움여러분의 디지털 뱅크가 점차 형태를 갖추어가고 있습니다! 계좌는 입금을 받을 수 있고, 적절한 잔액 확인을 통해 출금을 처리할 수 있습니다. 이제 잔액을 조회하는 getter 메서드를 추가하고, 실제 은행 시나리오에 맞춰 모든 기능을 통합해 보겠습니다.
기존 파일들을 계속해서 수정해 나갈 것입니다:
Account.lua: 현재 잔액을 반환하는:getBalance()메서드를 추가하세요. 이는 이전에 배운 getter 패턴을 따르는 것으로, 내부 데이터에 직접 접근하는 대신 제어된 방식으로 접근할 수 있게 해줍니다. 기존의 모든 기능(생성자, 입금 및 출금 메서드)은 그대로 유지하세요.main.lua: 계좌를 생성하고 일련의 은행 업무를 실행하여 입금, 출금, 잔액 확인이 실제 상황에서 어떻게 함께 작동하는지 보여주세요.
다섯 개의 입력을 받게 됩니다:
- 초기 입금액
- 첫 번째 출금액
- 두 번째 입금액
- 두 번째 출금액
- 세 번째 출금액
메인 파일에서 계좌를 생성하고 다음 작업을 순서대로 수행하세요:
- 초기 금액을 입금한 후,
:getBalance()를 사용하여 잔액을 출력합니다. - 첫 번째 금액을 출금한 후, 잔액을 출력합니다.
- 두 번째 금액을 입금한 후, 잔액을 출력합니다.
- 두 번째 금액을 출금한 후, 잔액을 출력합니다.
- 세 번째 출금을 시도한 후, 잔액을 출력합니다.
출금에 실패할 경우 잔액을 출력하기 전에 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())