1. La instrucción if es, por excelencia, la más utilizada para construir estructuras de control
de flujo.
SINTAXIS
Primera Forma
Ahora bién, la sintaxis utilizada en la programación de C++ es la siguiente:
if (condicion)
{
Set de instrucciones
}
siendo "condicion" el lugar donde se pondrá la condicion que se tiene que cumplir para
que sea verdadera la sentencia y así proceder a realizar el "set de instrucciones" o código
contenido dentro de la sentencia.
Segunda Forma
Ahora veremos la misma sintaxis pero ahora le añadiremos la parte "Falsa" de la
sentencia:
if (condicion)
{
Set de instrucciones //PARTE VERDADERA
}
else
{
Set de instrucciones 2 //Parte FALSA
}
La forma mostrada anteriormente muestra la union de la parte "VERDADERA" con la
nueva secuencia la cual es la parte "FALSA" de la sentencia de decision "IF" en la cual
esta compuesta por el:
else
{
Set de instrucciones 2 //Parte FALSA
}
la palabra "else" o "De lo contrario" indica al lenguaje que de lo contrario al no ser
verdadera o no se cumpla la parte verdadera entonces realizara el "set de instrucciones 2".
EJEMPLOS DE SENTENCIAS IF...
2. Ejemplo 1:
if(numero == 0) //La condicion indica que tiene que ser igual a Cero
{
cout<<"El Numero Ingresado es Igual a Cero";
}
Ejemplo 2:
if(numero > 0) // la condicion indica que tiene que ser mayor a Cero
{
cout<<"El Numero Ingresado es Mayor a Cero";
}
Ejemplo 3:
if(numero < 0) // la condicion indica que tiene que ser menor a Cero
{
cout<<"El Numero Ingresado es Menor a Cero";
}
Ahora uniremos todos estos ejemplos para formar un solo programa mediante la
utilización de la sentencia "Else" e introduciremos el hecho de que se puede escribir en
este espacio una sentencia if ya que podemos ingresar cualquier tipo de código dentro de
la sentencia escrita después de un Else.
Ejemplo 4:
if(numero == 0) //La condicion indica que tiene que ser igual a Cero
{
cout<<"El Numero Ingresado es Igual a Cero";
}
else
{
if(numero > 0) // la condicion indica que tiene que ser mayor a
Cero
{
cout<<"El Numero Ingresado es Mayor a Cero";
}
else
{
if(numero < 0) // la condicion indica que tiene que ser menor
a Cero
{
cout<<"El Numero Ingresado es Menor a Cero";
}
}
}
3. EL ENUNCIADO if
Con la instrucción if tenemos el primer ejemplo de un enunciado condicional. Observe en
primera instancia la presencia de un bucle for con un enunciado compuesto que contiene
dos instrucciones if. Este es a su vez un ejemplo de instrucciones anidadas, está claro que
cada una de las instrucciones if será ejecutada 8 veces.
/* Ejemplo de los enunciados if e if-else */
# include <stdio.h>
int main()
{
int valor;
for(valor = 0 ; valor < 8 ; valor = valor + 1)
{
if(valor == 2)
printf("Este mensaje se muestra solo cuando"
"valor es igual a 2 n");
if(valor < 5)
printf("Este mensaje se muestra cuando"
"valor que es %d es menor que 5n", valor);
else
printf("Este mensaje se muestra cuando"
"valor que es %d es mayor que 4n", valor);
} /* Fin del bucle */
printf("Este mensaje se mostrara solo cuando finalice el bucle n");
return 0;
}
Veamos el primer enunciado if, este empieza con la palabra clave if seguida de una
4. expresión entre paréntesis, si esta es evaluada a verdadero se ejecuta la instrucción que le
sigue, pero si es falso se brinca esta instrucción y continúa la ejecución en los siguientes
enunciados. La expresión "valor == 2" está simplemente preguntando si el valor de valor
es igual a 2, observe que se está utilizando un doble signo de igual para evaluar a
verdadero cuando valor vale 2, utilizar "valor == 2" tiene un significado completamente
diferente que explicaremos mas adelante.
La segunda instrucción if es similar a la primera excepto por la adición de la palabra
clave else en la línea 14, esto significa que si el enunciado entre paréntesis se evalúa a
verdadero se ejecuta la primera expresión, de lo contrario la instrucción que sigue a else
será ejecutada, por lo que una de las dos instrucciones será siempre ejecutada. Observe
además que el programa imprime dos mensajes diferentes cuando valor vale 2, esto es así
porque tenemos dos condiciones verdaderas cuando valor es 2, esto es, cuando valor es
exactamente 2 y a la vez es menor que 5. Compile este programa y observe su
funcionamiento.
¿Han pagado algún recibo en una máquina automática y se han preguntado cómo será el
programa que les devuelve el cambio? Lo más seguro es que no, pero pues resulta que el
profesor de Miguel Ángel le encargó un programa que simulara eso, en sus propias
palabras:
“Supón que una maquina de monedas de 10,5,2,1 y 50 centavos. Debes escribir un
programa que decida cuantas monedas dará de cambio, dando prioridad las de mayor
denominación. Debe recibir como entrada la cantidad de dar a cambio. Ejemplo: para
$40.50 será 4 de 10, 0 de 5, 0 de 2, 0 de 1 y 1 de 50 centavos.”
Así que el primer problema se presenta con la entrada ¿cómo hacer que el usuario
introduzca sólo cantidades como $50 o $43.50 y no cantidades como $23.45 o $9.70?
Lo que se me ocurrió es pedir la cantidad en una variable float (cambio), en otra variable
convertir esa cantidad a tipo int (cambioint). En ese proceso se perderá la parte decimal
del número, así que si la resta cambio – cambioint es igual a 0 o igual a 0.50, la cantidad
que introdujo el usuario es correcta.
5. La otra parte es sencilla, sólo se necesita ver si la variable cambio es mayor que 10. Si si,
se le restan 10 a la variable y se aumenta un contador. Luego se hace lo mismo con las
demás monedas.
Pero bueno, el programa es este:
1 #include<iostream>
2 using namespace std;
3
4 int main()
5 {
6 float cambio; int cambioint, m10=0, m5=0, m2=0, m1=0, m50c=0;
7 do
8 {
9 cout << "Cambio?: "; cin >> cambio;
10 cambioint = (int)cambio;
11 }while((cambio - cambioint) != 0 && (cambio - cambioint) != 0.50);
12 while(cambio != 0)
13 {
14 if(cambio>=10)
15 {
16 m10++;
17 cambio-=10;
18 }
19 else if(cambio>=5)
20 {
21 m5++;
22 cambio-=5;
23 }
24 else if(cambio>=2)
25 {
26 m2++;
27 cambio-=2;
28 }
29 else if(cambio>=1)
30 {
31 m1++;
32 cambio-=1;
33 }
34 else if(cambio>=0.5)
35 {
36 m50c++;
37 cambio-=0.5;
38 }
39 }
40 cout << m10 << ", " << m5 << ", " << m2 << ", " << m1 << ", " << m50c;
41 }
Solo le faltaría darle un poco de formato a la salida, pero pues ya es cuestión de gustos y
ya saben, cualquier duda aquí están los comentarios abajo.