Sei sulla pagina 1di 9

UNIDAD V ESTRUCTURAS SELECTIVAS 5.1 Selectiva simple 5.2 Selectiva doble 5.3 Selectiva anidada 5.

4 Selectiva mltiple

Introduccin Tal vez la caracterstica mas distintivas de un lenguaje sean sus sentencias de control. Estas son los mecanismos con los que se dirige el flujo dela ejecucin. C++ define tres categoras especificas de sentencias de control de programa: Sentencias de seleccin que incluyen las sentencias if y switch Sentencias de iteracin, que incluyen los bucles for, while y do-while Y las sentencias de bifurcacin, que incluyen break,continue , return y goto. LA SENTENCIA IF Es una de las sentencias de seleccin de C++, su operacin esta gobernada por el resultado de una expresin condicional. Tambin se le conoce como una sentencia condicional. El formato es: If (expresin) sentencia; La expresin puede ser cualquier expresin valida de C++. Si la evaluacin de la expresin resulta true, la sentencia ser ejecutada, si no es as, las sentencia ser omitida y se ejecutara la lnea de cdigo que viene detrs de la sentencia if. Ejemplo Para ver si un valor es mayor que otro, se usa el operador de relacin > 10>9 es true, pero 9>10 es false. Por lo tanto este if har que se muestre el mensaje true: if (10>9) cout<< true; La opcin else Puede aadir una sentencia else a la sentencia if. Una vez que se hace esto, la sentencia if se parece a la siguiente: If (expresin) sentencia1; 1

Else sentencia2 ; Si la expresin es true, entonces se ejecutara la sentencia objetivo y se saltara la porcin else. No obstante, si la expresin es false, entonces la sentencia objetivo ser omitida y se ejecutara la sentencia else. Bajo ninguna circunstancia se ejecutaran amabas sentencias. De esta manera, la adicin de else proporciona una ruta de decisin de dos alternativas. Bloques de cdigo Como C++ es un lenguaje estructurado permite la formacin de bloques de cdigo. Un bloque es un grupo de sentencias de programa conectadas lgicamente que es tratado como una unidad. Y se crea poniendo una secuencia de sentencias entre llaves. If (contador>100) { Cout<<demasiado grande introduzca otro numero; Cin>> contador; } las dos sentencias que vienen detrs de la sentencia if y entre las llaves sern ejecutadas solamente si contador es mayor que 100. estas dos sentencias conjuntamente con las llaves representan un bloque de cdigo. Sentencias if anidadas Cuando una sentencia if es el objetivo de otro if o else, se dice que esta anidado dentro del if exterior. If(cantidad > max) //if exterior If (error ==26)cout <<error, intentar nuevamente; //if anidado Aqu la sentencia cout solamente ser ejecutada si cantidad es mayor que max y si error es igual a 26. Un if anidado tambin se crea cuando un if aparece dentro de un bloque de sentencias que son el objetivo del if exterior. If(cantidad > max) { Max = cantidad; If (error ==26) cout << error, intentar de Nuevo; Cantidad = cantidad + 3; } en C++ puede anidar sentencias if hasta una profundidad de 256 niveles.

Sentencia switch Mientras que el if es bueno para escoger entre dos alternativas, se hace rpidamente incomodo cuando se necesitan varias alternativas. La solucin de c++ para este problema es la sentencia switch. La sentencia switch es la sentencia de seleccin mltiple de c++. Se usa para seleccionar uno entre varios caminos alternativos. Y trabaja de la siguiente manera: una variable se compara de forma sucesiva con una lista de constantes enteras o de carcter . Una vez que se encuentra una coincidencia, se ejecuta la secuencia de sentencias asociadas con ella. El formato general de la sentencia switch es: Switch)variable{ Case contante 1: Secuencia de sentencias Break; Case constante 2: Secuencia de sentencias Break; Case constante 3: Secuencia de sentencias Break; . . . . default: secuencia de sentencias; } donde la secuencia de sentencias default se efecta si no se encuentran coincidencias. La sentencia default es opcional. Si todas las coincidencias fallan y no hay sentencia default, no habr ninguna accin. Una vez que se encuentra una coincidencia, se ejecuta la secuencia de sentencias hasta que se encuentra la sentencia break, o en el caso default o en el ultimo case, se llega al final del switch. Diferencia entre if y switch La sentencia switch se diferencia de if en que switch solamente puede comprobar igualdad ,mientras que la expresin condicional if puede ser de cualquier tipo. Switch solamente funciona con tipos entero o carcter, no puede usar nmeros de coma flotante. Las secuencias de sentencias que estn asociadas con cada case no forman un bloque de cdigo no van encerradas entre llaves.

Break es opcional La sentencia break de un switch es opcional, cuando aparece dentro de un switch, hace que el flujo del programa salga de toda la sentencia switch y prosiga con la sentencia siguiente a esta.

UNIDAD VI ESTRUCTURAS DE REPETICION 6.1 repetir mientras 6.2 Repetir hasta 6.3 Repetir desde SENTENCIA FOR El bucle for es considerado como un bucle flexible. Permite una gran cantidad de variaciones, que hacen que sea aplicable a un conjunto de tareas de programacin. Se usa para repetir una sentencia o un bloque de sentencias un numero determinado de veces. For(inicializacin, expresin, incremento) sentencia; La seccin de inicializacin, le asigna un valor inicial a la variable que controla el bucle; esta variable se conoce como variable de control del bucle; la seccin de inicializacin se ejecuta solamente una vez, antes de que empiece el bucle. La expresin constituye la porcin de prueba de una condicin. Comprueba el valor de la variable de control de bucle con un valor determinado cada vez que se repite el bucle. Si la evaluacin de la prueba genera el valor true, entonces el bucle se repetir. Si es falso, el bucle se detendr y la ejecucin del programa continuara en la lnea de cdigo que le sigue al bucle. La prueba de la condicin se efecta al inicio de cada iteracion.(es decir, la expresin de condicin se evala en la parte superior del bucle). La porcin incremento del for se ejecuta al final de cada bucle. Esto significa que el incremento se ejecuta despus de que el cuerpo del bucle haya sido ejecutado, pero antes de la prueba de condicin siguiente. La finalidad de la expresin de incremento es aumentar (o disminuir) en una cierta cantidad, el valor de la variable de control del bucle.

SENTENCIA WHILE Esta sentencia se considera una sentencia de tipo bucle que permite repetir una serie de veces la ejecucin de un bloque de cdigo. Esta repeticin se realiza hasta que se cumpla una determinada condicin de tipo lgico o aritmtico. while (condicin) { sentencia1; . . } la condicin se evala antes de la ejecucin del bloque de sentencias y, en caso de que se cumpla dicha condicin, es decir, que su resultado sea true, se ejecutara el bloque de sentencias contenido entre llaves. Se ejecutara de forma iterativa ese bloque de sentencias hasta que la condicin sea falsa en cuyo caso el programa ejecutara la siguiente lnea de cdigo que sigue al bloque. Es decir, las sentencias se ejecutaran repetidamente mientras condicin sea true, y se deja de ejecutar cuando se convierte en false. Observe que , en este caso, la condicin para decidir si se sale o no del bucle esta antes de las sentencias, por lo que es posible que esas sentencias no se lleguen a ejecutar ni una sola vez. Adems y de forma general para todas las sentencias de iteracin o bucles, hay qye asegurarse que en algn momento la condicin no se cumple para que termine la ejecucin del mismo, pues de lo contrario tendramos un bucle infinito que bloqueara el programa. SENTENCIA DO... WHILE (ITERACIN) Cuando se construye un bucle utilizando la sentencia while, la evaluacin de la condicin se realiza al comienzo de cada pasada, siendo posible que nunca se ejecuten las sentencias contenidas en el si no se cumple nunca la condicin. La sentencia do-while , se considera una sentencia de tipo bucle que se comporta exactamente igual que la sentencia while, con la diferencia de que dicha evaluacin se realiza al final de cada pasada en lugar de al principio, por lo que se asegura que al menos se ejecutara una vez el bloque de sentencias. Do { sentencias; } while (condicion); Hay que poner punto y coma (;) a continuacin del parntesis que encierra la condicin.

SENTENCIAS BREAK Y CONTINUE La sentencia break se usa para interrumpir la secuencia lgica de un bucle o para salir de una sentencia switch. La sentencia continue solo se puede usar en los bucles for, while y do-while, y hace que el programa comience el siguiente ciclo del bucle, aunque aun no se haya llegado al final del mismo. El bucle no termina cuando se encuentra una sentencia continue, sencillamente no se ejecutan las sentencias que se encuentran a continuacin y se salta directamente a la siguiente pasada a travs del bucle. Con estos temas se han visto las sentencia se control del lenguaje c y su sintaxis. Ya se pueden empezar a codificar programas de mayor complejidad y mas funcionalidad que no se limiten a ejecutar cdigo de forma secuencial, sino que ya se podr hacer que la ejecucin del mismo salte de unas lneas a otras, que se ejecuten solo unas partes del cdigo dependiendo de unas condiciones concretas o que se pueda ejecutar un bloque de cdigo repetidas veces sin necesidad de tener que escribirlo mas de una vez.

Potrebbero piacerti anche