Menu
Coddy logo textTech

Auszahlungsmethode

Teil des Abschnitts Object Oriented Programming der Lua-Journey von Coddy — Lektion 21 von 70.

challenge icon

Aufgabe

Einfach

Ihre Digital Bank wächst! Konten können nun Einzahlungen entgegennehmen, aber eine echte Bank muss es Kunden auch ermöglichen, Geld abzuheben. Lassen Sie uns eine :withdraw(amount)-Methode hinzufügen – aber mit einer wichtigen Sicherheitsprüfung.

Im Gegensatz zu Einzahlungen können Abhebungen fehlschlagen. Wenn ein Kunde versucht, mehr Geld abzuheben, als er hat, sollte die Bank dies nicht zulassen. Ihre withdraw-Methode muss prüfen, ob ausreichend Guthaben vorhanden ist, bevor sie den Betrag abzieht.

Sie arbeiten weiterhin mit Ihren zwei Dateien:

  • Account.lua: Fügen Sie Ihrer bestehenden Account-Klasse eine :withdraw(amount)-Methode hinzu. Wenn das Konto über genügend Guthaben verfügt, ziehen Sie den Betrag ab und geben Sie true zurück. Wenn nicht genügend Guthaben vorhanden ist, geben Sie Insufficient funds aus und geben Sie false zurück, ohne den Kontostand zu ändern.
  • main.lua: Erstellen Sie ein Konto, tätigen Sie eine Einzahlung, um es mit Guthaben zu füllen, und versuchen Sie dann mehrere Abhebungen, um sowohl erfolgreiche als auch fehlgeschlagene Transaktionen zu sehen.

Sie erhalten vier Eingaben:

  1. Anfänglicher Einzahlungsbetrag
  2. Erster Abhebungsbetrag
  3. Zweiter Abhebungsbetrag
  4. Dritter Abhebungsbetrag

Erstellen Sie in Ihrer Hauptdatei ein Konto, zahlen Sie den Anfangsbetrag ein und versuchen Sie dann jede Abhebung nacheinander. Geben Sie nach jedem Abhebungsversuch den aktuellen Kontostand in einer neuen Zeile aus. Denken Sie daran, dass fehlgeschlagene Abhebungen auch Insufficient funds ausgeben, bevor Sie den Kontostand drucken.

Wenn die Eingaben beispielsweise 100, 30, 50 und 40 sind, sollte die Ausgabe wie folgt aussehen:

70
20
Insufficient funds
20

Das Konto beginnt nach der Einzahlung mit 100. Die erste Abhebung von 30 ist erfolgreich (Kontostand: 70), die zweite Abhebung von 50 ist erfolgreich (Kontostand: 20), aber die dritte Abhebung von 40 schlägt fehl, da nur noch 20 übrig sind – der Kontostand bleibt also bei 20.

Probier es selbst

-- Erfordert das Account-Modul
local Account = require('Account')

-- Die vier Eingaben lesen
local initialDeposit = tonumber(io.read())
local withdrawal1 = tonumber(io.read())
local withdrawal2 = tonumber(io.read())
local withdrawal3 = tonumber(io.read())

-- Ein einzelnes Konto erstellen
local account = Account:new()

-- Den Anfangsbetrag einzahlen
account:deposit(initialDeposit)

-- Ersten Abhebungsversuch unternehmen und Kontostand ausgeben
-- TODO: Hier account:withdraw(withdrawal1) aufrufen
print(account.balance)

-- Zweiten Abhebungsversuch unternehmen und Kontostand ausgeben
-- TODO: Hier account:withdraw(withdrawal2) aufrufen
print(account.balance)

-- Dritten Abhebungsversuch unternehmen und Kontostand ausgeben
-- TODO: Hier account:withdraw(withdrawal3) aufrufen
print(account.balance)

Alle Lektionen in Object Oriented Programming