(C++) Declaración condicional anidada. Condiciones difíciles


Declaración condicional anidada
En bloques "if" y "más" puede incluir cualquier otra declaración, incluidas otras declaraciones condicionales. Esto da como resultado sentencias condicionales anidadas; la instrucción else se refiere al if anterior más cercano.
 
Ejemplo
si ( A > 10 ) si ( A > 100 ) cout << "Tienes mucho dinero."; demás cout << "Tienes suficiente dinero."; demás cout << "No tienes suficiente dinero."; Para facilitar la comprensión del programa, todos los bloques "if" y "más" (junto con los paréntesis que los delimitan) se desplazan a la derecha de 2 a 3 caracteres; esto se denomina notación de escalera

Registrar "escalera" es una buena forma para cualquier programador!

Condición compleja
El problema anterior se puede resolver de una manera más corta utilizando condiciones complejas. 

Comprendamos qué es una condición compleja.

Las condiciones simples consisten en una relación (mayor que, menor que, etc.). Pero a veces es necesario combinar condiciones simples con otras más complejas. Por ejemplo, hace frío afuera y está lloviendo. Dos condiciones simples (hace frío afuera), (está lloviendo afuera) están vinculadas aquí por Y.
 
Condición compleja : consta de dos o más condiciones simples que se combinan con operaciones lógicas .
 
Conectores lógicos en C++
&& - multiplicación lógica (AND);
||  - adición lógica (OR);
!    - negación lógica (NO).

Multiplicación lógica (operación AND)  requiere que se cumplan dos condiciones simultáneamente:
condición_1 && condición_2  
se evaluará como verdadero solo si ambas condiciones simples son verdaderas al mismo tiempo.
Además, en el lenguaje de programación C, si condition_1 es falso, condition_2 no se comprobará.

La multiplicación lógica (operación OR) requiere al menos una de las siguientes condiciones:
condición_1 || condition_2
se evaluará como falso solo si ambas condiciones simples son falsas al mismo tiempo.
Además, en el lenguaje de programación C, si condition_1 es verdadero, entonces condition_2 no se comprobará.

Multiplicación lógica (NO operación)
 !condición_1 
se evaluará como falso si condition_1  cierto y viceversa.
Por ejemplo, las dos condiciones siguientes son equivalentes:   A>B   y  !(A<=B).
 
Prioridad de ejecución de operaciones y relaciones lógicas
1. Operaciones entre paréntesis.
2. Operación NO.
3. Relaciones lógicas >, <, >=, <=, ==, !=.
4. Operación I.
5. Operación O.
Los paréntesis se utilizan para cambiar el orden de las acciones.

 
Variables booleanas
En muchos lenguajes de programación, es posible utilizar variables que almacenan valores booleanos ("verdadero"/"falso"). En C++, tales variables pueden tomar los valores true (true) o false (false). Por ejemplo, un fragmento de programa:  bool a, b; a = verdadero; b=falso; cout << un || b; Muestra 1 (que es true, false es 0).

Las variables booleanas son de tipo bool, nombradas así por el matemático inglés George Boole, el creador del álgebra de la lógica.