Verbesserung eines Powershell Taschenrechners: Fehlerausgabe für Sonderzeichen integrieren.

Wie kann man einen Powershell Taschenrechner so erweitern, dass bei Eingabe von Sonderzeichen eine sinnvolle Fehlerausgabe erfolgt?

Uhr
Die Programmierung eines Taschenrechners in Powershell kann eine interessante Herausforderung darstellen. Doch besonders die Eingabefunktion präsentiert oft Probleme. Fehlerhafte Eingaben – wie zum Beispiel Sonderzeichen – führen oft zu unklaren Rückmeldungen. Dies hat der Benutzer erkannt und möchte eine ordentliche Fehlerausgabe implementieren.

Im vorliegenden Skript werden zwei Zahlen von den Benutzern eingegeben. Danach stehen vier Rechenoperationen zur Auswahl. Ein einfacher Code ist immer anfällig für Verbesserungen. Der Benutzer stellt fest – dass beim Eintippen von Sonderzeichen keine explizite Fehlerausgabe erfolgt. Dies ist nicht nur verwirrend; allerdings kann ebenfalls zu unerwarteten Programmabstürzen führen.

Eine potentielle Lösung könnte durch den Einsatz einer zusätzlichen Fehlerüberprüfung erreicht werden. Hierbei lassen sich einfache Bedingungen formulieren, die welche Eingaben gegen definierte Muster prüfen - was die Stabilität des Programms verbessert und eine bessere Benutzererfahrung schafft.

Erweitern wir das Skript um notwendige Fehlerprüfungen. Im konkreten Fall sollte die Eingabe auf gültige Zahlen überprüft werden. Ein Beispiel für eine solche Überprüfung wäre die Verwendung von regulären Ausdrücken (Regex). Diese ermöglichen es die Eingaben auf spezifische Formate zu testen. Sollte die Eingabe nicht dem vorgegebenen Muster entsprechen kann eine klare Fehlermeldung an den Benutzer ausgegeben werden.

Lassen Sie uns zunächst den Code des Taschenrechners umfassend betrachten. Zu Beginn wird eine Eingabeaufforderung erzeugt. Es fehlen jedoch spezifische Validierungschecks sowie für die Zahleneingaben als auch die Auswahl der Rechenoperation.

Im Switch-Case, in dem die Berechnungen durchgeführt werden, sollte ein `default`-Zweig eingefügt werden. So erhalten wir die Möglichkeit eine klare Ausgabe für nicht gültige Eingaben zu generieren. Wenn die eingegebenen Zahlen nicht den Erwartungen entsprechen, sollte die Funktion sofort eine Fehlermeldung anzeigen und den Benutzer um neue Eingaben bitten.

Hier ein Vorschlag um das Skript robuster zu gestalten:

```powershell
Write-Host "Geben Sie zwei Zahlen ein" -ForegroundColor Red
Write-Host "Wählen Sie eine der vier möglichen Rechenoperationen aus:" -ForegroundColor Green
Write-Host "1: Zahl1 : Zahl2 = Ergebnis"
Write-Host "2: Zahl1 + Zahl2 = Ergebnis"
Write-Host "3: Zahl1 - Zahl2 = Ergebnis"
Write-Host "4: Zahl1 * Zahl2 = Ergebnis"

$Zahl1 = Read-Host "Bitte geben Sie die erste Zahl ein"
$Zahl2 = Read-Host "Bitte geben Sie die zweite Zahl ein"
$Eingabe = Read-Host "Wählen Sie eine Rechenoperation"

Überprüfen, ob die Eingaben nur Zahlen sind

if (-not ($Zahl1 -match '^\d+(\.\d+)?$') -or -not ($Zahl2 -match '^\d+(\.\d+)?$')) {
Write-Host "Fehler: Eingabe muss eine Zahl sein." -ForegroundColor Red
exit
}

$Zahl1 = [double]$Zahl1
$Zahl2 = [double]$Zahl2

Zulässige Rechenoperationen definiert

switch ($Eingabe) {
1 { $Ergebnis = $Zahl1 / $Zahl2 }
2 { $Ergebnis = $Zahl1 + $Zahl2 }
3 { $Ergebnis = $Zahl1 - $Zahl2 }
4 { $Ergebnis = $Zahl1 * $Zahl2 }
default {
Write-Host "Fehlerhafte Eingabe" -ForegroundColor Red
exit
}
}

Fehlerausgabe bei Division durch 0

if ($Eingabe -eq 1 -and $Zahl2 -eq 0) {
Write-Host "Es darf nicht durch 0 geteilt werden." -ForegroundColor Red
exit
}

Ergebnis ausgeben

Write-Host "Das Ergebnis ist: $Ergebnis"
```

Diese Anpassungen führen dazu: Dass die Eingaben besser validiert werden. Benutzerfreundlichkeit wird verbessert ´ da der Benutzer klarere Anweisungen erhält ` wenn etwas schiefgeht. Beachtenswert ist, dass man stets darauf achten sollte, ebenso wie die Eingaben aussehen – das verbessert die allgemeine Robustheit des Programms.

Zusammenfassend lässt sich sagen: Dass die Implementierung von Fehlerprüfungen in Skripten entscheidend ist. Dies gewährleistet nicht nur die Funktionalität, einschließlich eine positive Erfahrung für den Benutzer.






Anzeige