Operadores lógicos AND, OR

 

A veces es necesario combinar más de una comparación en una misma condición. Para tales fines se puede utilizar un operador lógico. El  operador AND se usa cuando ambas condiciones tienen que ser ciertas para que la condición total sea cierta. El operador OR se utiliza cuando al menos una de las condiciones debe ser cierta para que toda la condición sea cierta. La siguiente tabla muestra las combinaciones de las condiciones y sus resultados al usar los operadores AND y OR.

 

AND

resultado

 

OR

resultado

condición 1

condición 2

condición 1

condición 2

C

C

C

C

C

C

F

C

F

F

C

C

C

F

F

C

F

C

F

F

F

 

F

F

F

 

En C++, se usa el símbolo && para indicar el operador AND y el símbolo      para indicar el operador OR.

 

Ejemplos:

 

Uso del AND: si en un IF se desea verificar si la edad entrada por el usuario está entre los 18 y 25 años de edad se debe escribir:

 

if  ((edad >= 18) && (edad <= 25))

 

Uso del OR: si en un IF se desea verificar si la persona indicó que tiene carro, se puede usar el OR para aceptar la letra ‘S’ o la letra ‘s’, sin tener que utilizar la función toupper.

 

if  ((carro = = ‘s’)       (carro = = ‘S’))

 

 


Ejercicio de práctica:

 

# include <iostream.h>

# include <ctype.h>

main ( )

{

      int estudio=0;

      char matricula, continuar;

      int simat = 0;

      int nomat = 0;

     

      cout << “Favor de participar solo si cursa entre segundo y cuarto año de estudio” << endl;

      cout << “Indique con una S si desea continuar, cualquier otra letra para terminar”;

      cin >> continuar;

      continuar = toupper (continuar);

      while (continuar = = ‘S’)

      {

            cout << “Entre su año de estudio en número: ”;

            cin >> estudio;

            if ((estudio >=2) && (estudio <= 4))

            {

                  cout << “Indique si completó su matrícula (S/N): ”;

                  cin >> matricula;

            if  ((matricula = = ‘S’)     (matricula = = ‘s’))    

                  {

                        simat = simat + 1;

                        cout << “Se añade uno a los que completaron su matrícula” << endl;

                  }

                  else

                  {

                        nomat = nomat + 1;

                        cout << “Los que faltan por matricularse aumentan” << endl;

                  }

            }

            else

            {

                  cout << “No cumple con los años de estudios requeridos.” << endl;

            }

            cout << “Desea continuar (S/N): ”;

            cin >> continuar;

            continuar = toupper (continuar);

      }

      cout << “Gracias por participar.” << endl;

      return (0);

}