Podsumowanie – bezpieczne dzielenie
Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 43 z 65.
Wyzwanie
ŁatwyUtwórz program, który implementuje kalkulator bezpiecznego dzielenia z użyciem obsługi wyjątków. Program powinien łagodnie obsługiwać błędy dzielenia przez zero i przekazywać użytkownikom jasne informacje, gdy wystąpią błędy.
- Odczytaj dane wejściowe w postaci ciągu znaków reprezentującego pierwszą liczbę (dzielną)
- Odczytaj dane wejściowe w postaci ciągu znaków reprezentującego drugą liczbę (dzielnik)
- Utwórz funkcję o nazwie
safeDivision, która przyjmuje dwa parametry typu double i zwraca wynik typu double - Funkcja powinna używać bloku
try-catchdo obsługi potencjalnych błędów dzielenia: - W bloku
try: Sprawdź, czy dzielnik wynosi zero, i jeśli tak, rzuć wyjątek z komunikatem"Division by zero is not allowed"; w przeciwnym razie wykonaj dzielenie - W bloku
catch: Obsłuż wyjątek i zwróć0.0jako bezpieczną wartość domyślną - Przekonwertuj wejściowe ciągi znaków na wartości typu double za pomocą
double.parse() - Wywołaj funkcję
safeDivisionz przekonwertowanymi wartościami - Wyświetl wyniki dokładnie w formacie pokazanym poniżej
Na przykład, jeśli dane wejściowe to "10.0" i "2.0", program powinien wyświetlić:
Safe Division Calculator
========================
First number: 10.0
Second number: 2.0
Performing division...
Result: 5.0
Operation completed successfullyJeśli dane wejściowe to "15.0" i "0.0", program powinien wyświetlić:
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 handlingJeśli dane wejściowe to "7.5" i "2.5", program powinien wyświetlić:
Safe Division Calculator
========================
First number: 7.5
Second number: 2.5
Performing division...
Result: 3.0
Operation completed successfullyProgram musi implementować funkcję safeDivision, która używa bloku try-catch do obsługi dzielenia przez zero. W bloku try sprawdź, czy dzielnik jest równy 0.0, i użyj słowa kluczowego throw, aby ręcznie wywołać wyjątek, jeśli tak jest. W bloku catch wyświetl komunikat o błędzie i zwróć 0.0 jako bezpieczną wartość zastępczą. Program główny powinien wywołać tę funkcję i wyświetlić różne komunikaty o zakończeniu, zależnie od tego, czy wystąpił błąd.
Spróbuj swoich sił
import 'dart:io';
// TODO: Utwórz tutaj funkcję safeDivision
void main() {
// Odczytaj dane wejściowe
String? firstInput = stdin.readLineSync();
String? secondInput = stdin.readLineSync();
// Przekonwertuj ciągi znaków na typ double
double firstNumber = double.parse(firstInput!);
double secondNumber = double.parse(secondInput!);
// Wyświetl nagłówek
print("Safe Division Calculator");
print("========================");
print("First number: $firstNumber");
print("Second number: $secondNumber");
print("Performing division...");
// TODO: Wywołaj funkcję safeDivision i obsłuż wynik
// Pamiętaj, aby sprawdzić, czy wystąpił błąd, i wyświetlić odpowiedni komunikat o zakończeniu
}Wszystkie lekcje w sekcji Logika i przepływ sterowania
1Zaawansowana manipulacja listami
Właściwości listy: first i lastStan listy: isEmpty i isNotEmpOdwracanie listyDodawanie do listy: insertUsuwanie z listy: removeWhereWyszukiwanie na liście: indexOfSortowanie listyMieszanie elementów listyPodsumowanie – Organizator listy4Zaawansowane operacje na mapach
Iterowanie po mapieSprawdzanie kluczy i wartościWłaściwości mapy: klucze i wartościDodawanie warunkowe: putIfAbsentUsuwanie wpisów z mapyZagnieżdżone mapyPodsumowanie – aktualizacja stanu magazynowego2Operacje funkcyjne na listach
Przekształcanie za pomocą 'map'Filtrowanie za pomocą 'where'Używanie '.toList()'Sprawdzanie warunków za pomocą 'any'Warunki z użyciem 'every'Wyszukiwanie za pomocą 'firstWhere'Podsumowanie — filtrowanie danych5Projekt: Kalkulator koszyka zakupowego
Konfiguracja projektuDodawanie produktów do koszyka3Zbiory
Czym jest zbiór?Tworzenie zbioruDodawanie i usuwanie elementów ze zbiorówSprawdzanie, czy element znajduje się w zbiorzeKonwersja listy na zbiórSuma zbiorówCzęść wspólna zbiorówRóżnica zbiorówPodsumowanie — unikalna lista gości6Podstawy obsługi błędów
Czym są wyjątki?Blok „try-catch”Przechwytywanie wyjątków za pomocą „on”Blok „finally”Rzucanie wyjątkuPodsumowanie – bezpieczne dzieleniePoćwicz samodzielnie: Kompilator Dart online