Trả lời nhanh
Trong câu lệnh rẽ nhánh, điều kiện là một biểu thức cho kết quả đúng (True) hoặc sai (False), thường là biểu thức so sánh (quan hệ) hoặc biểu thức logic. Nếu điều kiện đúng, chương trình thực hiện nhánh thứ nhất; nếu sai, chương trình bỏ qua nhánh đó hoặc thực hiện nhánh còn lại.
Điều kiện trong câu lệnh rẽ nhánh là gì?
Câu lệnh rẽ nhánh giúp chương trình “biết lựa chọn” giống như đời sống: nếu trời mưa thì mang ô, nếu không thì thôi. Phần “trời mưa” chính là điều kiện.
Trong lập trình, điều kiện luôn phải trả lời được bằng đúng một trong hai giá trị: đúng hoặc sai. Không có giá trị “có lẽ” hay “gần đúng”.
Hai dạng rẽ nhánh và vai trò của điều kiện
| Dạng | Cấu trúc | Khi điều kiện đúng | Khi điều kiện sai |
|---|---|---|---|
| Rẽ nhánh thiếu (dạng 1) | Nếu <điều kiện> thì <lệnh> | Thực hiện lệnh | Bỏ qua, đi tiếp |
| Rẽ nhánh đủ (dạng 2) | Nếu <điều kiện> thì <lệnh 1> nếu không thì <lệnh 2> | Thực hiện lệnh 1 | Thực hiện lệnh 2 |
Các loại biểu thức dùng làm điều kiện
- Biểu thức quan hệ (so sánh): dùng các phép
>,<,>=,<=,==(bằng),!=(khác). Ví dụ:diem >= 5. - Biểu thức logic: ghép nhiều điều kiện nhỏ bằng
and(và),or(hoặc),not(phủ định). Ví dụ:tuoi >= 6 and tuoi <= 11.
Ví dụ minh hoạ
Ví dụ 1 (Python):
diem = 7
if diem >= 5:
print("Đạt")
else:
print("Chưa đạt")
Điều kiện diem >= 5 với diem = 7 cho kết quả đúng, nên chương trình in “Đạt”. Nếu diem = 4, điều kiện sai và chương trình in “Chưa đạt”.
Ví dụ 2 (Scratch): khối nếu … thì … nếu không thì … có một ô hình lục giác để gắn điều kiện, chẳng hạn khối (tuổi) > 10. Ô này chỉ nhận biểu thức cho giá trị đúng/sai, nên không thể thả một con số hay một đoạn chữ vào đó.
Vì sao điều kiện không thể là một giá trị khác?
Máy tính chỉ có hai lối đi tại một ngã rẽ. Nếu điều kiện cho nhiều kết quả (như số 3 hay chữ “abc”) thì máy không biết chọn nhánh nào. Vì vậy điều kiện bắt buộc là biểu thức có hai giá trị đúng/sai.
Lỗi sai thường gặp
- Nhầm
=với==:=là phép gán giá trị, còn==mới là phép so sánh bằng (trong Python). Viếtif x = 5sẽ báo lỗi. - Quên dấu hai chấm sau điều kiện trong Python, hoặc thụt lề sai ở các lệnh thuộc nhánh.
- Viết điều kiện kép sai:
5 < x < 10trong ngôn ngữ khác Python nên viếtx > 5 and x < 10. - Cho rằng điều kiện sai thì chương trình dừng: thực ra chương trình chỉ bỏ qua nhánh đó và chạy tiếp các lệnh phía sau.
Mẹo nhớ
Hãy nhớ câu: “Điều kiện là câu hỏi Có/Không”. Câu “Điểm có lớn hơn hoặc bằng 5 không?” trả lời được Có hoặc Không, nên làm điều kiện được. Câu “Điểm là bao nhiêu?” thì không.
Bài luyện tập
- Với x = 8, biểu thức
x > 5 and x < 10cho giá trị đúng hay sai?
Đáp án: Đúng, vì 8 > 5 đúng và 8 < 10 đúng. - Với a = 3, b = 3, biểu thức
a != bcho giá trị gì? Chương trìnhif a != b: print("Khác")in ra gì?
Đáp án: Sai (a bằng b). Chương trình không in gì vì nhánh bị bỏ qua. - Viết điều kiện kiểm tra số n là số chẵn.
Đáp án:n % 2 == 0(phần dư khi chia cho 2 bằng 0).
Câu hỏi thường gặp
Điều kiện trong câu lệnh rẽ nhánh nhận những giá trị nào?
Chỉ nhận hai giá trị: đúng (True) hoặc sai (False). Kết quả này quyết định nhánh lệnh nào được thực hiện.
Điều kiện có thể là biểu thức số học như 3 + 4 không?
Không nên. Điều kiện cần là biểu thức quan hệ hoặc logic, ví dụ 3 + 4 > 5. Chỉ riêng 3 + 4 cho ra số 7, không phải đúng/sai.
Khi điều kiện sai thì chương trình làm gì?
Với rẽ nhánh dạng thiếu, chương trình bỏ qua lệnh và chạy tiếp. Với dạng đủ, chương trình thực hiện lệnh sau 'nếu không'.
Làm sao ghép nhiều điều kiện trong một câu lệnh rẽ nhánh?
Dùng phép logic and (và), or (hoặc), not (phủ định) để nối các biểu thức so sánh, ví dụ x > 5 and x < 10.