Trong lập trình Python, cấu trúc rẽ nhánh if giúp chương trình thực hiện các hành động khác nhau dựa trên các điều kiện nhất định. Tuy nhiên, đôi khi việc sử dụng một lệnh if đơn lẻ là chưa đủ để giải quyết các yêu cầu phức tạp. Việc lồng ghép các lệnh if vào nhau, hay còn gọi là lệnh if lồng nhau, sẽ trở thành một giải pháp hữu ích. Để hiểu rõ hơn về cú pháp, cách thức hoạt động, và cách ứng dụng loại câu lệnh này, hãy cùng tìm hiểu chi tiết trong bài viết này.
Lệnh if lồng nhau trong Python là gì?
Câu lệnh if lồng nhau (nested if) trong Python là một cách cho phép bạn đặt một câu lệnh if
(hoặc if...else
) bên trong một câu lệnh if
khác. Điều này rất hữu ích khi bạn cần kiểm tra nhiều điều kiện, và các điều kiện sau chỉ nên được kiểm tra khi điều kiện trước đó đã đúng.
Nói cách khác, sau khi một điều kiện trong câu lệnh if
đầu tiên được thỏa mãn, bạn có thể tiếp tục kiểm tra các điều kiện khác bằng cách lồng thêm các câu lệnh if
(hoặc if...elif...else
) bên trong. Không chỉ vậy, bạn còn có thể lồng nhiều lớp if
vào nhau để tạo ra những logic kiểm tra phức tạp hơn. Với khả năng này, bạn có thể dễ dàng xử lý các tình huống mà việc chỉ sử dụng các câu lệnh if
đơn lẻ không đủ khả năng.
<H2> Syntax of Nested if Statement
Cú pháp của cấu trúc if lồng nhau với điều kiện else
sẽ như sau:
if boolean_expression1:
statement(s)
if boolean_expression2:
statement(s)
Flowchart (Sơ đồ khối) của câu lệnh if lồng nhau
Dưới đây là sơ đồ khối minh họa câu lệnh if lồng nhau trong Python:
Ví dụ dưới đây minh họa cách hoạt động của câu lệnh if lồng nhau:
num = 36
print ("num = ", num)
if num % 2 == 0:
if num % 3 == 0:
print ("Chia hết cho cả 3 và 2")
print("....kết thúc thực thi....")
Khi chạy đoạn code trên, kết quả hiển thị sẽ như sau:
num = 36
Chia hết cho cả 3 và 2
….kết thúc thực thi….
Câu lệnh if lồng nhau với điều kiện else
Như đã đề cập trước đó, bạn có thể lồng câu lệnh if-else
vào bên trong một câu lệnh if
. Nếu điều kiện if
(ở ngoài) là đúng, thì câu lệnh if-else
(bên trong) đầu tiên sẽ được thực thi. Nếu điều kiện if
(ở ngoài) là sai, thì các câu lệnh bên trong khối else
sẽ được thực thi.
Cú pháp của cấu trúc if lồng nhau với điều kiện else
sẽ như sau:
if expression1:
statement(s)
if expression2:
statement(s)
else
statement(s)
else:
if expression3:
statement(s)
else:
statement(s)
Để hiểu rõ hơn về cách hoạt động của câu lệnh if lồng nhau, mình sẽ đưa ra một ví dụ cụ thể bằng code Python như sau:
num = 8
print("num = ", num)
if num % 2 == 0:
if num % 3 == 0:
print("Divisible by 3 and 2")
else:
print("divisible by 2 not divisible by 3")
else:
if num % 3 == 0:
print("divisible by 3 not divisible by 2")
else:
print("not Divisible by 2 not divisible by 3")
Khi chạy đoạn code trên, ta sẽ có kết quả như sau với các giá trị num khác nhau:
num = 8
divisible by 2 not divisible by 3
Nếu thay num = 15
num = 15
divisible by 3 not divisible by 2
Nếu thay num = 12
num = 12
Divisible by 3 and 2
Nếu thay num = 5
num = 5
not Divisible by 2 not divisible by 3
Giải thích:
- Ví dụ 1 (num = 8): Vì 8 chia hết cho 2, nên chương trình sẽ vào khối if đầu tiên. Tiếp đó, vì 8 không chia hết cho 3, nên nó sẽ in ra “divisible by 2 not divisible by 3”.
- Ví dụ 2 (num = 15): Vì 15 không chia hết cho 2, nên chương trình sẽ vào khối else đầu tiên. Tiếp đó, vì 15 chia hết cho 3, nên nó sẽ in ra “divisible by 3 not divisible by 2”.
- Ví dụ 3 (num = 12): Vì 12 chia hết cho 2, nên chương trình sẽ vào khối if đầu tiên. Tiếp đó, vì 12 chia hết cho 3, nên nó sẽ in ra “Divisible by 3 and 2”.
- Ví dụ 4 (num = 5): Vì 5 không chia hết cho 2, nên chương trình sẽ vào khối else đầu tiên. Tiếp đó, vì 5 không chia hết cho 3, nên nó sẽ in ra “not Divisible by 2 not divisible by 3”.
Ví dụ này giúp bạn hình dung rõ hơn về cách sử dụng câu lệnh if lồng nhau trong Python. Bạn có thể thay đổi giá trị của biến num để xem các kết quả khác nhé.
Lời kết
Vậy là chúng ta đã cùng nhau tìm hiểu chi tiết về lệnh if lồng nhau trong Python, một công cụ mạnh mẽ để xử lý các điều kiện phức tạp. Hy vọng, qua bài viết này, bạn có thể áp dụng linh hoạt lệnh if lồng nhau vào các bài toán lập trình của mình, viết ra những đoạn code logic và hiệu quả hơn.