You are on page 1of 8

Estructuras de Control (if, if else, switch

):
Estructura de control if:
Esta sentencia de control permite ejecutar o no una sentencia simple o
compuesta según se cumpla o no una determinada condición. Esta
sentencia tiene la siguiente forma general:
if (expresion)
{
sentencia;
}

Explicación: Se evalúa expresion. Si el resultado es true (#0), se
ejecuta sentencia; si el resultado es false (=0), se salta sentencia y se
prosigue en la línea siguiente. Hay que recordar que sentencia puede
ser una sentencia simple o compuesta (bloque { ... }).

Estructura de control if_else:
Esta sentencia permite realizar una bifurcación, ejecutando una parte u
otra del programa según se cumpla o no una cierta condición. La forma
general es la siguiente:
if (expresion)
{
sentencia_1;
}
else
{
sentencia_2;
}

Explicación: Se evalúa expresion. Si el resultado es true (#0), se
ejecuta sentencia_1 y se prosigue en la línea siguiente a sentencia_2; si
el resultado es false (=0), se salta sentencia_1, se ejecuta sentencia_2 y
se prosigue en la línea siguiente. Hay que indicar aquí también que
sentencia_1 y sentencia_2 pueden ser sentencias simples o compuestas
(bloques { ... }).

Estructura de control if_else Múltiples:
Esta sentencia permite realizar una ramificación múltiple, ejecutando
una entre varias partes del programa según se cumpla una entre n
condiciones. La forma general es la siguiente:
if (expresion_1)
{
sentencia_1;
}
else if (expresion_2)
{
sentencia_2;

Si el resultado es false. if (dato1>dato2) { cout<<"El Valor del dato 1 es el mayor "<<dato1<<endl. mientras que si es false se evalúa expresion_3 y así sucesivamente. cin>>dato1.} else if (expresion_3) { sentencia_3. EJEMPLO DE ESTRUCTURA DE CONTROL IF: (ejemploif. Si el resultado es true se ejecuta sentencia_2. [else sentencia_n. cout<<"El Valor del dato 1 es el menor "<<dato1<<endl. se salta sentencia_1 y se evalúa expresion_2. se ejecuta sentencia_1. cin>>dato2.. } else if (dato2>dato1) { cout<<"El Valor del dato 2 es el mayor "<<dato2<<endl. cout<<"Introduzca el Valor del Dato 2: "<<endl. Si ninguna de las expresiones o condiciones es true se ejecuta expresion_n que es la opción por defecto (puede ser la sentencia vacía.] Explicación: Se evalúa expresion_1.cpp) /*Hacer un progrma que lea 2 numeros y determine cual es el mayor y cual es el menor. } else if (dato1==dato2) { cout<<"El Valor del dato 1 y el dato 2 es identico: "<<dato1<<endl. Todas las sentencias pueden ser simples o compuestas. int main() { int dato1.) . } } .. y en ese caso puede eliminarse junto con la palabra else).. dato2. Si el resultado es true. cout<<"Introduzca el Valor del Dato 1: "<<endl. cout<<"El Valor del dato 2 es el menor "<<dato2<<endl.*/ #include <iostream> using namespace std.. } else if (.

. . } .. En general. Si el resultado coincide con el valor constante expresion_N2. case expresion_N3: sentencia_3. sentencia_3. case expresion_N2: sentencia_2. Si ninguna expresion_cte coincide se ejecuta la sentencia que está a continuación de default. else con múltiples ramificaciones. poniendo varios case expresion_N seguidos. aunque como se puede ver presenta también importantes diferencias. Si dicho resultado coincide con el valor constante expresion_N1..] } Explicación: Se evalúa expresion y se considera el resultado de dicha evaluación.Estructura de control switch: La sentencia que se va a describir a continuación desarrolla una función similar a la de la sentencia if . Existe también l posibilidad de ejecutar la misma sentencia_i para varios valores del resultado de expresion. default: sentencia_4. se ejecuta sentencia_1 seguida de sentencia_2. basta poner una sentencia break a continuación (en algunos casos puede utilizarse la sentencia return o la función exit()). Si se desea ejecutar únicamente una sentencia_i (y no todo un conjunto de ellas). break. sentencia_N…. . La forma general de la sentencia switch es la siguiente: switch (expresion) { case expresion_N1: sentencia_1... [default: sentencia. se ejecutan todas aquellas sentencias que están a continuación de la expresion_N cuyo valor coincide con el resultado calculado al principio.. break. sentencia.. case expresion_N…: sentencia_n... . break. case expresion_N2: sentencia_2.. switch (expresion) { case expresion_N1: sentencia_1. se ejecuta sentencia_2 seguida de sentencia_3. El efecto de la sentencia break es dar por terminada la ejecución de la sentencia switch.

} } Estructuras Repetitivas (for.*/ #include <iostream> using namespace std.cpp) /*Diseñe un programa que dado 2 valores me muestre un menú donde pueda escojer sumarlos. cout<<"El Resultado de la division es: "<<div<<endl. do while): Estructura Repetitiva for: . cout<<" 4 DIVISION"<<endl<<endl. cout<<"Introduzca VALOR 1: "<<endl. cout<<" MENU PRINCIPAL"<<endl. break. opcion. case 4: div=valor1+valor2. mul. cin>>valor1. cout<<"El Resultado de la resta es: "<<res<<endl. cout<<"El Resultado de la suma es: "<<sum<<endl. cout<<"Introduzca VALOR 2: "<<endl. multiplicarlos o dividirlos. case 2: res=valor1+valor2. Programa de Calculadora. default: cout<<"ERROR SOLO HAY 4 OPCIONES DEFINIDAS"<<endl.EJEMPLO DE ESTRUCTURA DE CONTROL SWITCH: (ejemploswitch. sum. break. cin>>valor2. cout<<"***** C A L C U L A D O R A *****"<<endl. case 3: mul=valor1+valor2. cin>>opcion. while. break. res. cout<<" 2 RESTA"<<endl. cout<<"Elija una opcion de las que sean mostrado:"<<endl. cout<<" 1 SUMA"<<endl. cout<<" 3 MULTIPLICACION"<<endl. restarlos. cout<<"El Resultado de la multiplicacion es: "<<mul<<endl. break. int main() { int valor1. break. div. valor2. switch (opcion){ case 1: sum=valor1+valor2.

i < 100. que puede ser una expresión o una declaración. si no se especifica la condición se asume que es verdadera. pero en ese caso tendrán validez sólo dentro del bucle "for". } for (int i = 0. cout<<"Indique la cantdidad de Personas"<<endl.cpp) /*Realiza un programa que determine el promedio de edad de aquellas Personas que son mayores de edad.*/ #include <iostream> using namespace std. i++) { cout<<"Indique la edad de la Persona: "<<endl. int main() { int cant. i<cant. if (edad>=18) { contador=contador+1. El grupo tiene un número determinado de personas. { sentencia. Después de cada iteración se ejecutará el incremento de las variables del bucle. EJEMPLO DE ESTRUCTURA REPETITIVA FOR: (ejemplofor. Antes de la primera iteración se ejecutará la iniciación del bucle. edad. Estas variables pueden ser declaradas en este punto. acumulador=0. Su forma general es la siguiente: for (inicializacion. expresion_de_control. i = i + 1). for (int i=0. expresion_de_incremento) { sentencia. cin>>cant. } Explicación: La sentencia es ejecutada repetidamente hasta que la evaluación de la condición resulte falsa. En este apartado se iniciarán las variables usadas en el bucle.For es quizás el tipo de bucle más versátil y utilizado del lenguaje C++. acumulador=acumulador+edad. Todas las expresiones son opcionales. cin>>edad. promedio. contador=0. cout<<"El promedio de edad de las personas mayores de edad es: "<<promedio<<endl. } } promedio=acumulador/contador. } Estructura Repetitiva while: .

sentencia se ejecuta repetidamente mientras expresion_de_control sea true. } Explicación: Se evalúa expresion_de_control y si el resultado es false se salta sentencia y se prosigue la ejecución. cin>>cantidad.cpp) /*Elabore un programa que acepte una cantidad de alumnos y nos indique que notas son aprobatorias y cuales son reprobadas. while (contador<=cantidad) { contador=contador+1. La ejecución de sentencia prosigue hasta que expresion_de_control se hace false. y se deja de ejecutar cuando expresion_de_control se hace false. En otras palabras. contador=0. int main() { int cantidad. cout<<"Indique la NOTA: "<<endl. } else if (nota>=0 && nota<=5) { cout<<"REPROBADO"<<endl. cin>>nota. cout<<"APROBADO"<<endl.*/ #include <iostream> using namespace std. en cuyo caso la ejecución continúa en la línea siguiente a sentencia. if (nota>=6 && nota<=10) { contador=contador+1. mientras se cumpla una determinada condición. La forma general es como sigue: while (expresion_de_control) { sentencia. Obsérvese que en este caso el control para decidir si se sale o no del bucle está antes de sentencia. nota. por lo que es posible que sentencia no se llegue a ejecutar ni una sola vez. } . } else { cout<<"ESTA NOTA NO ESTA EN LA ESCALA DE 0 al 10"<<endl. Si el resultado es true se ejecuta sentencia y se vuelve a evaluar expresion_de_control (evidentemente alguna variable de las que intervienen en expresion_de_control habrá tenido que ser modificada. EJEMPLO DE ESTRUCTURA REPETITIVA WHILE: (ejemplowhile. una sentencia o bloque de sentencias. pues si no el bucle continuaría indefinidamente).Esta sentencia permite ejecutar repetidamente. cout<<"Indique la cantidad de alumnos: "<<endl.

do { cout<<"Indique la Nota: "<<endl. cout<<"APROBADO"<<endl. } else if (nota>=0 && nota<=5) { cout<<"REPROBADO"<<endl } else { cout<<"ESTA NOTA NO ESTA EN LA ESCALA DE 0 al 10"<<endl. cin>>opc. if (nota>=6 && nota<=10) { contador=contador+1. EJEMPLO DE ESTRUCTURA REPETITIVA DO_WHILE: (ejemplodowhile. int main() { int nota. } while (expresion_de_control). con la diferencia de que la evaluación de expresion_de_control se realiza al final del bucle. después de haber ejecutado al menos una vez las sentencias entre llaves. } cout<<"Desea Introducir otra Nota S/N"<<endl. char opc.*/ #include <iostream> using namespace std. Donde sentencia puede ser una única sentencia o un bloque. } } Estructura Repetitiva do_while: Esta sentencia funciona de modo análogo a while. . éstas se vuelven a ejecutar mientras expresion_de_control sea true. entre otros motivos para que esa línea se distinga de una sentencia while ordinaria. cin>>nota. La forma general de esta sentencia es: do { sentencia.cpp) /*Elabore un programa que permita contar los alumnos con notas superiores ha 6.) a continuación del paréntesis que encierra a expresion_de_control. e indique si esta aprobado o aplazado. contador=0. y en la que debe observarse que hay que poner (.

} . } while (opc=='S' || opc=='s'). cout<<"La cantidad de Aprobados Fue: "<< contador<<endl.