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);
}