Control de flujo de programación en C ++

Las siguientes estructuras ++ C dirigen el flujo de control a través del programa. Si usted es un programador experimentado, la función de estas estructuras será familiar de otros idiomas.

SI

Los siguientes evalúa comando booleanExpression. Si se evalúa como cierto, entonces el control pasa a expressions1. Si no, entonces el control pasa a la opcional expressions2.

si (booleanExpression) {expressions1 -} [else {expressions2-}]

MIENTRAS

Los siguientes evalúa comando booleanExpression. Si esto se evalúa como cierto, entonces el control pasa a expresiones. Al final del bloque, el control pasa de nuevo a booleanExpression y repite el proceso.

while (booleanExpression) {} Expresiones del

DO nº 133-MIENTRAS

Los siguientes ejecuta el comando expresiones. Luego evalúa booleanExpression. Si este resultado true, el control vuelve a la parte superior del bucle y repite el proceso.

do {} Expresiones del tiempo (booleanExpression) -

PARA

Los siguientes ejecuta el comando initCommand que puede ser una expresión o una declaración de variable. Luego evalúa boolExpression. Si esto se evalúa como cierto, entonces el control pasa a expressions1. Si boolExpression es falso, entonces el control pasa a la primera declaración después de la llave de cierre de la para lazo. Una vez que expresiones completa, el control pasa a la expresión contenida en loopExpression antes de volver a boolExpression para repetir el proceso. Si initCommand declara una nueva variable, se sale del ámbito tan pronto como el control pasa fuera del bucle.

para (initCommand- boolExpression- loopExpression) {} Expresiones del

PARA CADA)

La norma de 2011 introduce una segunda forma de para bucle conoce a veces como "para cada" debido a su similitud con la para cada se encuentra en algunos otros idiomas. De esta forma, la variable declarada en declaración toma el valor del primer miembro de lista y ejecuta el expresiones bloque. Cuando se haya completado, la variable declarada toma el segundo valor de lista y ejecuta expresiones de nuevo. Este proceso se repite para cada valor de lista.

para (declaración: lista) {} Expresiones del

INTERRUPTOR

Los siguientes evalúa comando integerExpression y compara el resultado con cada uno de los casos enumerados. Si el valor se encuentra para ser igual a uno de los valores integrales constantes, val1, val2, etc., el control pasa a la correspondiente conjunto de expresiones y continúa hasta que el control se encuentra con una descanso. Si la expresión no es igual a cualquiera de los valores, el control pasa a la expressionsN siguiendo por defecto.

switch (integerExpression) {case val1: expressions1-break caso val2:-expressions2 desglose [predeterminado: expressionsN-]}

Break, continue, GOTO

LA continuar pasa el control al extremo de la abrazadera cerrada de cualquiera de los controles de bucle. Esto hace que el bucle para continuar con la siguiente iteración. Por ejemplo, el siguiente bucle procesa números primos entre 1 y 20:

for (int i = 0- i lt; 20- i ++) {// si el número no es primo ... si) {// ... saltar al siguiente valor de icontinue (esPrimo (i!) -} // Proceder sobre procesamiento}

LA descanso pasa el control a la primera sentencia después de la llave cerrada de cualquiera de los comandos de bucle. Esto hace que la ejecución para salir del bucle inmediatamente. Por ejemplo, el siguiente lee caracteres hasta ya se encuentra al final del archivo:

while (true) {// leer una línea de entrada objectinput >> línea - // si se produce un fallo o al final de su archivo ... si (cin.eof () || cin.fail ()) {// ... entonces salir del LoopBreak -} // proceso de la línea}

LA etiqueta Goto pasa el control a la etiqueta proporcionada. El ejemplo ruptura por encima podría haber sido escrito de la siguiente manera:

while (true) {// leer una línea de entrada objectinput >> línea - // si se produce un fallo o al final de su archivo ... si (cin.eof () || cin.fail ()) {// ... entonces salir del exitLabel loopgoto -} // proceso de la línea} exitLabel: // el control continúa aquí



» » » » Control de flujo de programación en C ++