Menu
Coddy logo textTech

Obtenir le solde

Fait partie de la section Programmation orientée objet 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 des retraits avec une vérification appropriée des fonds. Ajoutons maintenant une méthode getter pour récupérer le solde, puis mettons tout ensemble dans un scénario bancaire réaliste.

Vous continuerez à partir de vos fichiers existants :

  • Account.lua : ajoutez une méthode :getBalance() qui renvoie le solde actuel. Cela suit le modèle 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 montrer comment les dépôts, les retraits et les vérifications du 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 avec :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 affichent Insufficient funds avant l'affichage du solde.

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

200
150
250
70
Insufficient funds
70

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

Essayez vous-même

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

-- Lire 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éer un seul compte
local account = Account:new()

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

-- Tenter le premier retrait et afficher le solde
account:withdraw(withdrawal1)
print(account:getBalance())

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

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

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

Toutes les leçons de Programmation orientée objet

Entraînez-vous par vous-même : Compilateur Lua en ligne