Hỏi về cách dừng một hàm khi điều kiện sai

Bắt buộc phải có ạ. Mình cứ tưởng không có cũng được chứ @@

Hi gioi.
Trước khi dùng hàm thì việc đầu tiên là đọc tài liệu về nó. Việc không kiểm tra các biến ngoài truyền vào giảm bớt các đoạn code thừa. Cũng như các kiểm tra không cần thiết được thực hiện qua nhiều lớp.
VD hàm thương dùng trong tính giá trị phân số thì rõ rang mẫu bằng không không thể xay ra. Nếu có nó phải được kiểm tra trước khi dùng hàm tính giá trị (Trong hàm khới tạo chẳn hạn).

Hoặc trong trương hợp hàm thương được viết cho thư viện số lớn thì thay vì phải truyền biến trạng thái hoặc bắt lỗi nén ra thì trước khi gọi hàm cần kiểm tra các biến vào từ đó không mất công gọi hàm nữa có thể chuyển hướng chương trình luôn.

Mình chưa viết cái đó bao giờ @_@!

Không catch thì chương trình của bạn sẽ dừng một cách bất bình thường

Mình chỉ đưa ví dụ kia để hỏi về throw thôi chứ không áp dụng vô bài đó bạn ạ.

Hi Kira. (death note).
Trong lập trình thương hay gặp trương hợp mà các lỗi sinh ra do các biến được truyền từ ngoài vào không hợp lệ không chỉ riêng chia cho 0, có thể là con trỏ chưa câp phát hoặc index ngoài mảng v.v.v… Cần tìm một giải pháp chung cho các trường hợp đó.
Theo mình là code lười. Mình cũng rất mong tìm được một giải pháp nào đó co tâm hơn tro các trường hợp như vậy.

Ô bạn này? null là null, 0 là 0, lại có khái niệm return null là trả về 0 cơ đấy :))

Người ta học C++ mà =))

với hàm int, float bạn return null xem có phải là 0 không :grin:. Mình biết ý nghĩa của null nhưng trong trường hợp cụ thể trên thì là 0 còn gì

“Đại khái” thôi nha

UnitTest là thứ mà dev phải làm khi viết hàm nào đó. Nó là tập hợp các trạng thái có thể xảy ra đối với param input… Nếu hàm của bạn cho kết quả không mong muốn thì bạn phải viết lại hàm đó.

Nếu bạn ko viết UnitTest thì có 2 khả năng là:
1- Anh Leader sẽ đút cháo cho bạn.
2- Cả Team đút cháo cho anh Leader.

Tks bạn. Mình mới năm 1 đh à :cold_sweat:

Dùng cái này cho hại não:
bool tt |(bool a, bool b).
Động cực kỳ.

Trời tới giờ mình mới biết tới assert() :smile: phải nghiên cứu thanks!

1 Like

bên trái là 0
bên phải là null

2 cái khác nhau. Tại C/C++ cùi hủi nên mới cho 2 cái là 1. C++11 có thểm kiểu nullptr_t để vá lỗi này nhưng vì vẫn phải backward compatible với anh C nên cùi vẫn hoàn cùi…

1 Like

Đó là do bạn không có tag C++ thôi :))
Chứ C++ làm gì có “float?”
Mình nói rõ nhé, “float?” chứ không phải “float”
code mình viết ở trên là C#

Nếu mà là int hoặc float, return null chương trình sẽ báo lỗi, vì int và float và nhiều kiểu dữ liệu khác là “not nullable”

Ặc ựa, lúc nãy không thấy C++ đâu, giờ lại thấy tag C++ với một đống code @@

Mod đi ngang tag hộ mình :stuck_out_tongue_winking_eye:

Bạn có thể dùng hàm exit() để dừng chương trình khi mẫu số = 0

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?