Chỉ làm khi điều kiện phù hợp
Chương trình phân loại điểm cần chọn một nhánh theo giá trị nhận được. Ta đọc điều kiện và thứ tự xét trước, rồi xác định nhánh thực sự chạy.
Điều kiện và khối lệnh
Quan sát sơ đồ để nối các khái niệm với nhau.
So sánh dùng ==, !=, <, <=, >, >=. Với các điều kiện logic, and yêu cầu cả hai đúng, or yêu cầu ít nhất một đúng, not đảo đúng/sai. if/elif/else trong cùng chuỗi chọn nhánh đầu tiên thỏa; các if độc lập có thể cùng chạy.
Sau điều kiện có dấu hai chấm; khối lệnh được thụt dòng nhất quán. Thụt dòng mang ý nghĩa chương trình, không chỉ để đẹp. Khi kiểm tra số chẵn, n % 2 == 0; để kiểm tra đoạn đóng, có thể dùng 0 <= x <= 10.
Thứ tự các nhánh
```python
score = 8
if score >= 8:
print("A")
elif score >= 5:
print("B")
else:
print("C")
```
Điều kiện đầu đúng nên in A rồi bỏ qua các nhánh còn lại. Không in thêm B dù 8 cũng lớn hơn hoặc bằng 5.
Thử vận dụng
Điều kiện nào đúng khi x là số nguyên chẵn và dương?
or chấp nhận cả số chẵn âm hoặc số lẻ dương.
Đúng: hai yêu cầu phải cùng thỏa.
Điều kiện này chọn số lẻ dương.
Đây là phép gán, không phải điều kiện cần xét.
Lời giải
Cần đồng thời chẵn và dương nên dùng and với hai điều kiện.
Một giá trị ở ranh giới
Nếu muốn nhận x trong đoạn [3, 7], điều kiện là 3 <= x <= 7. Dùng 3 < x < 7 sẽ loại hai giá trị biên. Ta thử 3, 5, 7 và một giá trị ngoài như 8 để nhìn rõ khác biệt.
Ví dụ xem cách làm
Hai if độc lập cùng kiểm tra score >= 8 và score >= 5, mỗi if in A/B. Với score = 8, kết quả khác chuỗi if/elif thế nào?
Lời giải
Hai if độc lập đều chạy nên in A rồi B trên hai dòng. Chuỗi if/elif ở ví dụ chỉ in A vì dừng chọn nhánh sau điều kiện đầu đúng.
Ví dụ xem cách làm
Viết điều kiện x nằm ngoài đoạn [0, 10].
Lời giải
`x < 0 or x > 10`. Hai phía ngoài đoạn là hai khả năng thay thế, không thể yêu cầu đồng thời nhỏ hơn 0 và lớn hơn 10.
Những điều cần nhớ
Chú ý dấu so sánh tại biên, and/or và chuỗi if/elif. Hãy theo đúng thụt dòng để biết lệnh nào thuộc nhánh nào.
Đang học