Instrução condicional aninhada
Em blocos "if" e "outro" pode incluir quaisquer outras instruções, incluindo outras instruções condicionais aninhadas; a instrução else  refere-se ao if anterior mais próximo. 
 
Por exemplo:  
se ( A > 10 )
  se (A > 100)
    cout << "Você tem um monte de dinheiro.";
  outro
    cout << "Você tem dinheiro suficiente.";
outro
    cout << "Você não tem dinheiro suficiente.";
Para facilitar a compreensão do programa, todos os blocos "if" e "outro" (junto com os colchetes que os delimitam) são deslocados para a direita por 2-3 caracteres - tal entrada é chamada de entrada ladder. 
            
            
                  
            
             
                    
            
                 
      
                  
           | 
	
		
 
     
              
              
                  
                       
            
                
          
            O problema anterior pode ser resolvido de forma mais curta usando condições complexas .  ; 
 
Vamos ver o que é. 
As condições mais simples consistem em uma relação (maior que, menor que, etc.). Mas às vezes é necessário combinar condições simples em outras mais complexas, por exemplo: está frio lá fora e está chovendo. Duas condições simples (está frio lá fora) (está chovendo lá fora) estão conectadas aqui por E. 
 
Condição complexa - consiste em duas ou mais relações simples (condições) combinadas por meio de operações lógicas:
|  Nome | 
Como escrito em C# | 
 
| E | 
&& | 
 
| OU | 
|| | 
 
| NÃO | 
! | 
 
 
A operação   E  (multiplicação booleana) requer que duas condições sejam encontrados simultaneamente . 
condição1 && condition2 só será avaliada como verdadeira se ambas as condições simples forem verdadeiras ao mesmo tempo. 
 
A operação  OR (adição lógica) requer que pelo menos uma das condições seja atendida. 
 condição1 ||  condição2  irá avaliar como falso somente se ambas as condições simples forem falsas ao mesmo tempo. 
 
Operação NÃO  (negação lógica) 
 ! condição1  avaliará como falso se condição1 for verdadeiro e vice-versa. 
 
Prioridade de execução de operações lógicas e relações. 
1. Operações entre colchetes. 
2. Operação NÃO. 
3. Relações lógicas >, <, >=, <=, ==, !=. 
4. Operação E. 
5. Operação OU. 
Os parênteses são usados para alterar a ordem das ações. 
 
Variáveis booleanas. 
Em muitas linguagens de programação é possível utilizar variáveis que armazenam valores booleanos (verdadeiro/falso). Em C#, tais variáveis podem assumir os valores true (true) ou false (false). Por exemplo, um fragmento de programa: 
bool a, b;
a = verdadeiro;
b=falso;
Console.WriteLine(a || b);
Irá produzir para a tela 1 (que é true -  false é 0).
As variáveis booleanas são do tipo bool em homenagem ao matemático inglês George Boole - o criador da álgebra da lógica. 
            
            
                  
            
             
                    
            
                 
      
                  
           |