Rückblick - Sichere Division
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 43 von 65.
Aufgabe
EinfachErstellen Sie ein Programm, das einen sicheren Divisionsrechner unter Verwendung von Ausnahmebehandlung implementiert. Ihr Programm sollte Fehler bei der Division durch Null elegant handhaben und den Benutzern eine klare Rückmeldung geben, wenn Fehler auftreten.
- Lesen Sie eine String-Eingabe ein, die die erste Zahl (Dividend) darstellt
- Lesen Sie eine String-Eingabe ein, die die zweite Zahl (Divisor) darstellt
- Erstellen Sie eine Funktion namens
safeDivision, die zwei double-Parameter entgegennimmt und ein double-Ergebnis zurückgibt - Die Funktion sollte einen
try-catch-Block verwenden, um potenzielle Divisionsfehler zu behandeln: - Im
try-Block: Prüfen Sie, ob der Divisor Null ist, und lösen Sie eine Exception mit der Nachricht"Division by zero is not allowed"aus, falls dies zutrifft, andernfalls führen Sie die Division aus - Im
catch-Block: Behandeln Sie die Exception und geben Sie0.0als sicheren Standardwert zurück - Konvertieren Sie die Eingabestrings mit
double.parse()in double-Werte - Rufen Sie die Funktion
safeDivisionmit den konvertierten Werten auf - Zeigen Sie die Ergebnisse im unten gezeigten exakten Format an
Wenn die Eingaben beispielsweise "10.0" und "2.0" sind, sollte Ihr Programm Folgendes ausgeben:
Safe Division Calculator
========================
First number: 10.0
Second number: 2.0
Performing division...
Result: 5.0
Operation completed successfullyWenn die Eingaben "15.0" und "0.0" sind, sollte Ihr Programm Folgendes ausgeben:
Safe Division Calculator
========================
First number: 15.0
Second number: 0.0
Performing division...
Error: Division by zero is not allowed
Using safe default value: 0.0
Operation completed with error handlingWenn die Eingaben "7.5" und "2.5" sind, sollte Ihr Programm Folgendes ausgeben:
Safe Division Calculator
========================
First number: 7.5
Second number: 2.5
Performing division...
Result: 3.0
Operation completed successfullyIhr Programm muss die Funktion safeDivision implementieren, die einen try-catch-Block verwendet, um die Division durch Null zu behandeln. Prüfen Sie im try-Block, ob der Divisor gleich 0.0 ist, und verwenden Sie das Schlüsselwort throw, um manuell eine Exception auszulösen, falls dies zutrifft. Geben Sie im catch-Block die Fehlermeldung aus und geben Sie 0.0 als sicheren Ersatzwert zurück. Das Hauptprogramm sollte diese Funktion aufrufen und je nachdem, ob ein Fehler aufgetreten ist, unterschiedliche Abschlussmeldungen anzeigen.
Probier es selbst
import 'dart:io';
// TODO: Erstellen Sie hier die Funktion safeDivision
void main() {
// Eingabe lesen
String? firstInput = stdin.readLineSync();
String? secondInput = stdin.readLineSync();
// Strings in Double umwandeln
double firstNumber = double.parse(firstInput!);
double secondNumber = double.parse(secondInput!);
// Kopfzeile anzeigen
print("Safe Division Calculator");
print("========================");
print("First number: $firstNumber");
print("Second number: $secondNumber");
print("Performing division...");
// TODO: Rufen Sie die Funktion safeDivision auf und verarbeiten Sie das Ergebnis
// Denken Sie daran zu prüfen, ob ein Fehler aufgetreten ist, um die entsprechende Abschlussmeldung anzuzeigen
}Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Listenmanipulation
Listen-Eigenschaften: first & lastListen-Status: isEmpty & isNotEmptyEine Liste umkehrenHinzufügen zu einer Liste: insertElemente aus Liste entfernen: removeWhereSuchen in einer Liste: indexOfEine Liste sortierenEine Liste mischenZusammenfassung – Listen-Organizer4Fortgeschrittene Map-Manipulation
Über eine Map iterierenPrüfen auf Schlüssel und WerteMap-Eigenschaften: keys & valuesBedingtes Hinzufügen: putIfAbsentEinträge aus einer Map entfernenVerschachtelte MapsRückblick – Inventar-Update7Fortgeschrittene Funktionen
Anonyme FunktionenFunktionen als Argumente übergebenClosures verstehenEinführung in die RekursionRekursive Funktion: CountdownRekursive Funktion: FakultätZusammenfassung – List Processor10Abschluss-Herausforderungen
Herausforderung: NotensortiererHerausforderung: VokalzählerHerausforderung: FizzBuzz2Funktionale Listenoperationen
Transformieren mit 'map'Filtern mit 'where''.toList()' verwendenBedingungen prüfen mit 'any'Bedingungen mit 'every'Suchen mit 'firstWhere'Zusammenfassung – Datenfilterung3Sets
Was ist ein Set?Ein Set erstellenHinzufügen und Entfernen in SetsPrüfen auf Elemente in einem SetEine Liste in ein Set umwandelnSet-VereinigungSet-SchnittmengeSet-DifferenzRückblick – Einzigartige Gästeliste6Grundlagen der Fehlerbehandlung
Was sind Exceptions?Der 'try-catch'-BlockExceptions mit 'on' abfangenDer 'finally'-BlockEine Exception auslösenRückblick - Sichere Division