Menu
Coddy logo textTech

Obtenir le solde

Fait partie de la section Object Oriented Programming du Journey Lua de Coddy — leçon 22 sur 70.

challenge icon

Défi

Facile

Votre banque numérique prend vraiment forme ! Les comptes peuvent recevoir des dépôts et gérer les retraits avec une vérification appropriée des fonds. Maintenant, ajoutons une méthode getter pour récupérer le solde, puis mettons tout cela ensemble dans un scénario bancaire réaliste.

Vous continuerez à travailler sur vos fichiers existants :

  • Account.lua : Ajoutez une méthode :getBalance() qui retourne le solde actuel. Cela suit le modèle de getter que vous avez appris précédemment — fournir un accès contrôlé aux données internes plutôt que d'accéder directement au champ. Conservez toutes vos fonctionnalités existantes (constructeur, méthodes de dépôt et de retrait).
  • main.lua : Créez un compte et exécutez une séquence d'opérations bancaires pour démontrer comment les dépôts, les retraits et les vérifications de solde fonctionnent ensemble dans un scénario réel.

Vous recevrez cinq entrées :

  1. Montant du dépôt initial
  2. Montant du premier retrait
  3. Montant du deuxième dépôt
  4. Montant du deuxième retrait
  5. Montant du troisième retrait

Dans votre fichier principal, créez un compte et effectuez ces opérations dans l'ordre :

  1. Déposez le montant initial, puis affichez le solde en utilisant :getBalance()
  2. Retirez le premier montant, puis affichez le solde
  3. Déposez le deuxième montant, puis affichez le solde
  4. Retirez le deuxième montant, puis affichez le solde
  5. Tentez le troisième retrait, puis affichez le solde

N'oubliez pas que les retraits échoués afficheront Insufficient funds avant que vous n'affichiez le solde.

Par exemple, si les entrées sont 200, 50, 100, 180, et 100, la sortie devrait être :

200
150
250
70
Insufficient funds
70

Le compte commence à 200, descend à 150 après le premier retrait, monte à 250 après un autre dépôt, tombe à 70 après le retrait de 180, et reste à 70 lorsque le dernier retrait de 100 échoue en raison de fonds insuffisants.

Essayez vous-même

-- Requiert le module Account
local Account = require('Account')

-- Lit les cinq entrées
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())

-- Crée un compte unique
local account = Account:new()

-- Dépose le montant initial et affiche le solde en utilisant :getBalance()
account:deposit(initialDeposit)
print(account:getBalance())

-- Tente le premier retrait et affiche le solde
account:withdraw(withdrawal1)
print(account:getBalance())

-- Dépose le deuxième montant et affiche le solde
account:deposit(deposit2)
print(account:getBalance())

-- Tente le deuxième retrait et affiche le solde
account:withdraw(withdrawal2)
print(account:getBalance())

-- Tente le troisième retrait et affiche le solde
account:withdraw(withdrawal3)
print(account:getBalance())

Toutes les leçons de Object Oriented Programming