Skip to content

Cấu trúc điều kiện if

Tóm lược nội dung

Bài này trình bày cấu trúc điều kiện `if.

Khái quát

Không phải bài toán nào cũng được giải quyết theo một "đường thẳng", tức thực hiện một mạch các dòng lệnh từ trên xuống.

Trên thực tế, có rất nhiều bài toán mà trong quá trình giải quyết, phát sinh các trường hợp khác nhau, buộc ta phải chọn một hướng duy nhất để đi tiếp, chứ không thể phân thân đi nhiều hướng cùng lúc.

Trong các ngôn ngữ lập trình, ifcấu trúc điều kiện (1), được dùng để giải quyết bài toán có nhiều trường hợp.

  1. Một số sách giáo khoa gọi là cấu trúc rẽ nhánh.

if thiếu

Cú pháp

if điều_kiện:
    # Thực thi nếu điều_kiện đúng

Nếu điều_kiện có giá trị True thì thực thi khối lệnh ngay bên dưới.

Ngược lại, nếu điều_kiện có giá trị False thì không thực thi gì cả.

Nói cách khác, nếu đúng thì làm, không thì thôi.

Ví dụ:
Hàm evaluate_mos_score() dưới đây xét xem điểm MOS (Microsoft Office Specialist) có đạt 1000 hay không.

Hàm chỉ có một tham số đầu vào là s, biểu thị điểm MOS, và không có giá trị trả về.

def evaluate_mos_score(s):
    if s == 1000:
        print('Xuất sắc! Bạn đã đạt điểm tối đa 🎉')


if __name__ == '__main__':
    score = int(input('Nhập điểm thi MOS của bạn: '))

    # Gọi hàm
    evaluate_mos_score(score)

Chạy đoạn mã trên và nhập vào 1000, kết quả như sau:

Nhập điểm thi MOS của bạn: 1000
Xuất sắc! Bạn đã đạt điểm tối đa 🎉

if đủ dành cho hai trường hợp

Cú pháp

if điều_kiện:
    # Thực thi nếu điều_kiện đúng
else:
    # Thực thi nếu điều_kiện sai

Nếu điều_kiện có giá trị True thì thực thi khối lệnh ngay bên dưới.

Ngược lại, nếu điều_kiện có giá trị False thì thực thi khối lệnh của else.

Ví dụ:
Ta bổ sung else vào hàm evaluate_mos_score() để xử lý trường hợp điểm MOS nhỏ hơn 1000. Việc xử lý chỉ đơn giản là in ra màn hình một thông báo.

    def evaluate_mos_score(s):
        if s == 1000:
            print('Xuất sắc! Bạn đã đạt điểm tối đa 🎉')
        else:
            print('Chưa thể xác định bạn đậu hay rớt 🤔')


    if __name__ == '__main__':
        score = int(input('Nhập điểm thi MOS của bạn: '))

        # Gọi hàm
        evaluate_mos_score(score)

Chạy đoạn mã trên và nhập vào 691, kết quả như sau:

Nhập điểm thi MOS của bạn: 691
Chưa thể xác định bạn đậu hay rớt 🤔

if đủ dành cho ba trường hợp trở lên

Cú pháp

if điều_kiện_1:
    # Thực thi nếu điều_kiện_1 đúng 
elif điều_kiện_2:
    # Thực thi nếu điều_kiện_2 đúng
...

elif
    ...
else:
    # Thực thi đối với các trường hợp còn lại

Cấu trúc if này xử lý riêng cho từng trường hợp.

Ví dụ: Ta bổ sung elif để xử lý trường hợp "thi đậu", từ 700 điểm trở lên, và chỉnh sửa mã lệnh của else để xử lý những trường hợp còn lại, tức nhỏ hơn 700.

def evaluate_mos_score(s):
    if s == 1000:
        print('Xuất sắc! Bạn đã đạt điểm tối đa 🎉')
    elif s >= 700:
        print('Chúc mừng bạn đã đạt chứng chỉ MOS 👍')
    else:
        print('Rớt rồi 🥹')
        print('Buồn ít thôi. Hãy thử lại lần nữa 💪')


if __name__ == '__main__':
    score = int(input('Nhập điểm thi MOS của bạn: '))

    # Gọi hàm
    evaluate_mos_score(score)

Chạy đoạn mã trên và nhập vào 691, kết quả như sau:

Nhập điểm thi MOS của bạn: 691
Rớt rồi 🥹
Buồn ít thôi. Hãy thử lại lần nữa 💪

Sơ đồ tóm tắt

Mã nguồn

Code đầy đủ được đặt tại:

Some English words

Vietnamese Tiếng Anh
cấu trúc điều kiện
câu lệnh điều kiện
conditional statement
trường hợp case