Riepilogo - Divisione sicura
Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 43 di 65.
Sfida
FacileCrea un programma che implementi una calcolatrice per divisioni sicure usando la gestione delle eccezioni. Il programma dovrebbe gestire in modo appropriato gli errori di divisione per zero e fornire agli utenti indicazioni chiare quando si verificano errori.
- Leggi una stringa di input che rappresenta il primo numero (dividendo)
- Leggi una stringa di input che rappresenta il secondo numero (divisore)
- Crea una funzione chiamata
safeDivisionche accetta due parametri double e restituisce un risultato double - La funzione dovrebbe usare un blocco
try-catchper gestire potenziali errori di divisione: - Nel blocco
try: controlla se il divisore è zero e, in caso affermativo, genera un'eccezione con il messaggio"Division by zero is not allowed"; altrimenti esegui la divisione - Nel blocco
catch: gestisci l'eccezione e restituisci0.0come valore predefinito sicuro - Converti le stringhe di input in valori double usando
double.parse() - Chiama la funzione
safeDivisioncon i valori convertiti - Visualizza i risultati esattamente nel formato mostrato qui sotto
Ad esempio, se gli input sono "10.0" e "2.0", il programma dovrebbe produrre:
Safe Division Calculator
========================
First number: 10.0
Second number: 2.0
Performing division...
Result: 5.0
Operation completed successfullySe gli input sono "15.0" e "0.0", il programma dovrebbe produrre:
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 handlingSe gli input sono "7.5" e "2.5", il programma dovrebbe produrre:
Safe Division Calculator
========================
First number: 7.5
Second number: 2.5
Performing division...
Result: 3.0
Operation completed successfullyIl programma deve implementare la funzione safeDivision, che usa un blocco try-catch per gestire la divisione per zero. Nel blocco try, controlla se il divisore è uguale a 0.0 e usa la parola chiave throw per generare manualmente un'eccezione in caso affermativo. Nel blocco catch, stampa il messaggio di errore e restituisci 0.0 come valore di ripiego sicuro. Il programma principale dovrebbe chiamare questa funzione e visualizzare messaggi di completamento diversi a seconda che si sia verificato un errore.
Provalo tu
import 'dart:io';
// TODO: Crea qui la funzione safeDivision
void main() {
// Leggi l'input
String? firstInput = stdin.readLineSync();
String? secondInput = stdin.readLineSync();
// Converti le stringhe in double
double firstNumber = double.parse(firstInput!);
double secondNumber = double.parse(secondInput!);
// Visualizza l'intestazione
print("Safe Division Calculator");
print("========================");
print("First number: $firstNumber");
print("Second number: $secondNumber");
print("Performing division...");
// TODO: Chiama la funzione safeDivision e gestisci il risultato
// Ricorda di controllare se si è verificato un errore per visualizzare il messaggio di completamento appropriato
}Tutte le lezioni di Logica e flusso
1Manipolazione avanzata delle liste
Proprietà delle liste: primo e ultimoStato della lista: isEmpty e isNotEmpInvertire una listaAggiungere a una lista: insertRimozione dalla lista: removeWhereRicerca in una lista: indexOfOrdinare una listaMescolare una listaRiepilogo - Organizzatore di liste4Manipolazione avanzata delle mappe
Iterare su una mappaVerificare chiavi e valoriProprietà delle mappe: chiavi e valoriAggiunta condizionale: putIfAbsentRimuovere elementi da una mappaMappe annidateRiepilogo - Aggiornamento dell'inventario2Operazioni funzionali sulle liste
Trasformare con 'map'Filtrare con 'where'Usare '.toList()'Verificare condizioni con 'any'Condizioni con 'every'Trovare con 'firstWhere'Riepilogo - Filtraggio dei dati3Insiemi
Che cos'è un insieme?Creare un insiemeAggiungere e rimuovere elementi dagli insiemiVerificare la presenza di elementi in un insiemeConvertire una lista in un insiemeUnione di insiemiIntersezione di insiemiDifferenza tra insiemiRiepilogo - Lista degli ospiti unici6Gestione di base degli errori
Cosa sono le eccezioni?Il blocco 'try-catch'Gestire le eccezioni con 'on'Il blocco 'finally'Lanciare un'eccezioneRiepilogo - Divisione sicuraEsercitati da solo: Compilatore Dart online