Ôn tập: phép chia an toàn
Thuộc phần Logic và luồng điều khiển trong hành trình Dart của Coddy. Bài học 43 trên 65.
Thử thách
DễTạo một chương trình máy tính phép chia an toàn bằng cách xử lý ngoại lệ. Chương trình cần xử lý lỗi chia cho 0 một cách phù hợp và thông báo rõ ràng cho người dùng khi xảy ra lỗi.
- Đọc một đầu vào dạng chuỗi biểu thị số thứ nhất (số bị chia)
- Đọc một đầu vào dạng chuỗi biểu thị số thứ hai (số chia)
- Tạo một hàm (function) có tên
safeDivision, nhận hai tham số kiểu double và trả về kết quả kiểu double - Hàm cần dùng khối lệnh
try-catchđể xử lý các lỗi chia có thể xảy ra: - Trong khối lệnh
try: Kiểm tra xem số chia có bằng 0 không. Nếu có, ném một ngoại lệ với thông báo"Division by zero is not allowed", nếu không thì thực hiện phép chia - Trong khối lệnh
catch: Xử lý ngoại lệ và trả về0.0làm giá trị mặc định an toàn - Chuyển các chuỗi đầu vào thành giá trị kiểu double bằng
double.parse() - Gọi hàm
safeDivisionvới các giá trị đã chuyển đổi - Hiển thị kết quả theo chính xác định dạng bên dưới
Ví dụ, nếu đầu vào là "10.0" và "2.0", chương trình của bạn cần in ra:
Safe Division Calculator
========================
First number: 10.0
Second number: 2.0
Performing division...
Result: 5.0
Operation completed successfullyNếu đầu vào là "15.0" và "0.0", chương trình của bạn cần in ra:
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 handlingNếu đầu vào là "7.5" và "2.5", chương trình của bạn cần in ra:
Safe Division Calculator
========================
First number: 7.5
Second number: 2.5
Performing division...
Result: 3.0
Operation completed successfullyChương trình của bạn phải triển khai hàm safeDivision, dùng khối lệnh try-catch để xử lý trường hợp chia cho 0. Trong khối lệnh try, hãy kiểm tra xem số chia có bằng 0.0 không và dùng từ khóa throw để chủ động kích hoạt một ngoại lệ nếu có. Trong khối lệnh catch, hãy in thông báo lỗi và trả về 0.0 làm giá trị dự phòng an toàn. Chương trình chính cần gọi hàm này và hiển thị các thông báo hoàn tất khác nhau tùy theo việc có xảy ra lỗi hay không.
Tự làm thử
import 'dart:io';
// TODO: Tạo hàm safeDivision tại đây
void main() {
// Đọc đầu vào
String? firstInput = stdin.readLineSync();
String? secondInput = stdin.readLineSync();
// Chuyển các chuỗi sang double
double firstNumber = double.parse(firstInput!);
double secondNumber = double.parse(secondInput!);
// Hiển thị tiêu đề
print("Safe Division Calculator");
print("========================");
print("First number: $firstNumber");
print("Second number: $secondNumber");
print("Performing division...");
// TODO: Gọi hàm safeDivision và xử lý kết quả
// Nhớ kiểm tra xem có lỗi xảy ra không để hiển thị thông báo hoàn tất phù hợp
}Tất cả bài học trong Logic và luồng điều khiển
1Thao tác nâng cao với danh sách
Thuộc tính danh sách: đầu và cuốiTrạng thái danh sách: isEmpty và isNotEmpĐảo ngược danh sáchThêm vào danh sách: insertXóa khỏi danh sách: removeWhereTìm trong danh sách: indexOfSắp xếp danh sáchXáo trộn danh sáchÔn tập: trình sắp xếp danh sách4Thao tác nâng cao với Map
Duyệt qua MapKiểm tra khóa và giá trịCác thuộc tính của Map: khóa và giá trịThêm có điều kiện: putIfAbsentXóa mục khỏi MapMap lồng nhauÔn tập: Cập nhật kho hàng2Thao tác hàm trên danh sách
Biến đổi bằng 'map'Lọc bằng 'where'Dùng '.toList()'Kiểm tra điều kiện bằng 'any'Điều kiện với 'every'Tìm phần tử bằng 'firstWhere'Ôn tập: lọc dữ liệu5Dự án: Tính tiền giỏ hàng
Thiết lập dự ánThêm mặt hàng vào giỏ8Dự án: Trình phân tích văn bản đơn giản
Tổng quan và thiết lập dự ánĐếm ký tự3Tập hợp
Tập hợp là gì?Tạo tập hợpThêm và xóa phần tử khỏi tập hợpKiểm tra phần tử trong tập hợpChuyển danh sách thành tập hợpPhép hợp của các tập hợpPhép giao của các tập hợpPhép hiệu của các tập hợpÔn tập: danh sách khách mời không trùng lặp6Xử lý lỗi cơ bản
Ngoại lệ là gì?Khối lệnh 'try-catch'Bắt ngoại lệ bằng 'on'Khối lệnh 'finally'Ném ngoại lệÔn tập: phép chia an toànTự luyện tập: Trình biên dịch Dart online