(C++) Câu lệnh điều kiện lồng nhau. Điều kiện khó khăn


Câu lệnh điều kiện lồng nhau
Trong khối "if" và "khác" có thể bao gồm bất kỳ câu lệnh nào khác, kể cả các câu lệnh điều kiện khác. Điều này dẫn đến câu lệnh điều kiện lồng nhau; câu lệnh else đề cập đến câu lệnh if gần nhất trước đó.
 
Ví dụ
nếu ( A > 10 ) nếu ( A > 100 ) cout << "Bạn có rất nhiều tiền."; khác cout << "Bạn có đủ tiền."; khác cout << "Bạn không có đủ tiền."; Để dễ hiểu chương trình hơn, tất cả các khối "if" và "khác" (cùng với dấu ngoặc đơn phân định chúng) được dịch sang phải 2-3 ký tự - đây được gọi là ký hiệu bậc thang.

Ghi "bậc thang" là hình thức tốt cho bất kỳ lập trình viên nào!

Điều kiện phức tạp
Bài toán trước có thể được giải theo cách ngắn hơn bằng cách sử dụng các điều kiện phức tạp. 

Hãy hiểu điều kiện phức tạp là gì.

Các điều kiện đơn giản bao gồm một quan hệ (lớn hơn, nhỏ hơn, v.v.). Nhưng đôi khi cần phải kết hợp các điều kiện đơn giản thành những điều kiện phức tạp hơn. Ví dụ, bên ngoài trời lạnh và đang mưa. Hai điều kiện đơn giản (bên ngoài trời lạnh), (bên ngoài trời mưa) được liên kết ở đây bởi AND.
 
Điều kiện phức tạp - bao gồm hai hoặc nhiều điều kiện đơn giản được kết hợp với các phép toán logic .
 
Liên kết logic trong C++
&& - phép nhân logic (AND);
||  - phép cộng logic (OR);
!    - phủ định logic (NOT).

Phép nhân logic (phép toán AND)  đòi hỏi phải đáp ứng đồng thời hai điều kiện:
điều kiện_1 && điều kiện_2  
sẽ được đánh giá là đúng chỉ khi cả hai điều kiện đơn giản đều đúng cùng một lúc.
Ngoài ra, trong ngôn ngữ lập trình C, nếu condition_1 là sai thì condition_2 sẽ không được chọn.

Phép nhân logic (phép toán OR) yêu cầu ít nhất một trong các điều kiện sau:
điều kiện_1 || điều kiện_2
sẽ đánh giá sai chỉ khi cả hai điều kiện đơn giản là sai cùng một lúc.
Ngoài ra, trong ngôn ngữ lập trình C, nếu condition_1 là true thì condition_2 sẽ không được kiểm tra.

Phép nhân logic (KHÔNG hoạt động)
 !condition_1 
sẽ đánh giá là sai nếu condition_1  đúng và ngược lại.
Ví dụ: hai điều kiện sau là tương đương:   A>B   và  !(A<=B).
 
Ưu tiên thực hiện các phép toán logic và quan hệ
1. Các phép toán trong ngoặc.
2. Thao tác NOT.
3. Quan hệ logic >, <, >=, <=, ==, !=.
4. Thao tác I.
5. Phép toán OR.
Dấu ngoặc đơn được dùng để thay đổi thứ tự của các hành động.

 
Biến Boolean
Trong nhiều ngôn ngữ lập trình, có thể sử dụng các biến lưu trữ giá trị boolean ("true"/"false"). Trong C++, các biến như vậy có thể nhận giá trị true (true) hoặc false (false). Ví dụ: một đoạn mã chương trình:  bool a, b; a = đúng; b=sai; cout << một || b; Hiển thị 1 (là true, false 0).

Các biến boolean thuộc loại bool, được đặt theo tên của nhà toán học người Anh George Boole, người tạo ra đại số logic.