Học lập trình if-else: Xử lý mâu thuẫn do rượu chè và lời nói

Câu lệnh if-else là công cụ lý tưởng để chương trình của chúng ta "suy nghĩ" và đưa ra các quyết định khác nhau dựa trên nhiều điều kiện. Điều này rất hữu ích trong việc mô phỏng các kịch bản xã hội, nơi các yếu tố khác nhau có thể dẫn đến kết quả khác nhau.

Cấu trúc cơ bản đã biết

Như đã trình bày, cấu trúc tổng quát của if-else là:

if (điều_kiện_1) {
    // Khối lệnh nếu điều_kiện_1 đúng
} else if (điều_kiện_2) {
    // Khối lệnh nếu điều_kiện_1 sai VÀ điều_kiện_2 đúng
} else {
    // Khối lệnh nếu tất cả các điều_kiện trên đều sai
}

Ví dụ: Xử lý tình huống "Rượu vào lời ra, đánh nhau"

Hãy tưởng tượng chúng ta đang xây dựng một hệ thống đơn giản để đánh giá mức độ nghiêm trọng của một cuộc xích mích có thể phát triển thành vi phạm pháp luật, dựa trên các yếu tố như lượng cồn, lời nói khiêu khích và hành vi bạo lực.

Giả sử chúng ta có các biến sau:

  • luongConTrongMau: Mức độ cồn trong máu (ví dụ: 0 = không có, 1 = thấp, 2 = trung bình, 3 = cao).
  • loiNoiKhieuKhich: Biến boolean (đúng/sai) cho biết có lời nói khiêu khích hay không.
  • hanhViBaoLuc: Biến boolean cho biết có hành vi bạo lực (đánh nhau) hay không.

Chúng ta sẽ dùng if-else để phân loại tình huống và đề xuất cách xử lý.

Python
# Ví dụ bằng Python

luongConTrongMau = 2  # Mức trung bình
loiNoiKhieuKhich = True
hanhViBaoLuc = False

print(f"Lượng cồn trong máu (0-3): {luongConTrongMau}")
print(f"Có lời nói khiêu khích: {loiNoiKhieuKhich}")
print(f"Có hành vi bạo lực: {hanhViBaoLuc}")
print("\n--- Đánh giá tình huống mâu thuẫn ---")

if hanhViBaoLuc:
    if luongConTrongMau >= 2:
        print("Tình huống: **Xô xát, đánh nhau nghiêm trọng do say xỉn**.")
        print("Mức độ: **VI PHẠM PHÁP LUẬT**.")
        print("Hành động: Cần báo cáo cơ quan công an, điều tra và xử lý theo quy định của pháp luật về gây rối trật tự công cộng, cố ý gây thương tích (nếu có).")
    else:
        print("Tình huống: **Xô xát, đánh nhau (không có cồn)**.")
        print("Mức độ: **VI PHẠM HÀNH CHÍNH/HÌNH SỰ** (tùy mức độ).")
        print("Hành động: Cần làm rõ nguyên nhân, lập biên bản và xử lý theo quy định.")
elif loiNoiKhieuKhich and luongConTrongMau >= 1:
    print("Tình huống: **Cãi vã gay gắt, có nguy cơ bạo lực do rượu chè**.")
    print("Mức độ: **CÓ NGUY CƠ GÂY RỐI TRẬT TỰ CÔNG CỘNG**.")
    print("Hành động: Cần can thiệp ngay lập tức để ngăn chặn leo thang bạo lực. Tách các đối tượng, làm dịu tình hình.")
elif loiNoiKhieuKhich:
    print("Tình huống: **Tranh cãi, lời qua tiếng lại**.")
    print("Mức độ: **MÂU THUẪN NHỎ**.")
    print("Hành động: Cần hòa giải, khuyên răn các bên, tránh để mâu thuẫn tích tụ.")
elif luongConTrongMau >= 1:
    print("Tình huống: **Người say xỉn nhưng chưa có hành vi gây rối**.")
    print("Mức độ: **TIỀM ẨN RỦI RO**.")
    print("Hành động: Cần giám sát, đưa về nhà hoặc có biện pháp quản lý để tránh gây rối.")
else:
    print("Tình huống: **Bình thường, không có dấu hiệu mâu thuẫn nghiêm trọng**.")
    print("Mức độ: **AN TOÀN**.")
    print("Hành động: Không cần can thiệp.")

Giải thích ví dụ:

Trong ví dụ này, chúng ta sử dụng các câu lệnh if-else lồng nhau và kết hợp các điều kiện để đưa ra đánh giá chính xác hơn:

  1. if hanhViBaoLuc::

    • Đây là điều kiện đầu tiên và quan trọng nhất. Nếu đã có hành vi bạo lực, chúng ta đi sâu vào đánh giá mức độ nghiêm trọng.
    • if luongConTrongMau >= 2: (lồng bên trong): Nếu có bạo lực và lượng cồn cao, đây là trường hợp nghiêm trọng nhất, cần xử lý pháp luật.
    • else: (của if luongConTrongMau >= 2): Nếu có bạo lực nhưng không do cồn, vẫn là vi phạm nhưng có thể nguyên nhân khác, cần điều tra thêm.
  2. elif loiNoiKhieuKhich and luongConTrongMau >= 1::

    • Chỉ được kiểm tra nếu chưa có hành vi bạo lực.
    • Nếu có lời nói khiêu khíchlượng cồn trung bình trở lên, đây là tình huống có nguy cơ cao, cần can thiệp để ngăn chặn bạo lực.
  3. elif loiNoiKhich::

    • Chỉ được kiểm tra nếu chưa có bạo lực và không có sự kết hợp của cồn và khiêu khích.
    • Nếu chỉ có lời nói khiêu khích mà không có bạo lực hay cồn, đây là mâu thuẫn nhỏ, cần hòa giải.
  4. elif luongConTrongMau >= 1::

    • Chỉ được kiểm tra nếu các điều kiện trên đều sai.
    • Nếu chỉ có người say xỉn mà chưa có hành vi gây rối hay lời nói khiêu khích, đây là tình huống tiềm ẩn rủi ro cần giám sát.
  5. else::

    • Nếu tất cả các điều kiện trên đều sai, tức là không có bất kỳ dấu hiệu nào của mâu thuẫn hay rủi ro, tình huống được coi là an toàn.

Ví dụ này minh họa cách if-else giúp chúng ta xây dựng các "luật" để chương trình có thể đưa ra các phản ứng khác nhau cho các tình huống đa dạng.