¿qué es anidamiento de estructuras de control?
Estructura de control anidada en c++
Como puedes ver, simplemente incluimos como parte de la “acción verdadera” una sentencia y otra estructura de control if then else. Hicimos lo mismo (anidamos otro if then else) para la “acción falsa”. En nuestro ejemplo, anidamos estructuras de control if then else. La anidación podría tener un if then else dentro de un bucle while. Así, el concepto de anidación permite mezclar las diferentes categorías de estructuras de control.
Se obtiene un mensaje apropiado dependiendo del valor de la edad. El último elemento se denomina por defecto. Si la edad no es igual a 18, 39 o 65 se obtiene el mensaje por defecto. Para simplificar la estructura del código, esto se suele escribir como:
Estructura de control en visual basic
Como puede ver, simplemente incluimos como parte de la “acción verdadera” una declaración y otra estructura de control if then else. Hicimos lo mismo (anidamos otro if then else) para la “acción falsa”. En nuestro ejemplo hemos anidado estructuras de control if then else. La anidación podría tener un if then else dentro de un bucle while. Así, el concepto de anidación permite mezclar las diferentes categorías de estructuras de control.
Se obtiene un mensaje apropiado dependiendo del valor de la edad. El último elemento se denomina por defecto. Si la edad no es igual a 18, 39 o 65 se obtiene el mensaje por defecto. En algunas situaciones no hay ninguna acción por defecto. Considere:
La última estructura de control if then else no tiene “else”. Está implícito “else no hacer nada”. Sin la acción por defecto la selección multidireccional podría escribirse como una serie de estructuras “if then sin el else”. Considere:
Hemos mostrado dos formas de realizar la selección multidireccional. La elección de usar estructuras de control anidadas if then else o una serie de estructuras de control if then se decide por la existencia de una acción por defecto (debe usar nested if then else) o por la preferencia del programador si no hay una acción por defecto (puede usar nested if then else o una serie de estructuras de control if then).
Bucle de control anidado
El código profundamente anidado es una característica común de la programación estructurada. Aunque tiene algunas ventajas, discutidas en esa sección, a menudo se considera difícil de leer y un anti-patrón: “Lo plano es mejor que lo anidado”[1].
En concreto, el flujo de control anidado -bloques condicionales (if) o bucles (for, while)- es difícil de entender más allá de tres niveles de anidación,[2][3] y tiene una alta complejidad ciclomática. Esto se conoce como “Anidamiento Peligrosamente Profundo”[3] o, en el caso de las sentencias if anidadas, el “Patrón Anti Flecha”, debido a la siguiente forma:
Aparte de refactorizar o evitar este código, una técnica para manejar el código profundamente anidado es el plegado de código en los editores – esto le permite colapsar un bloque, produciendo abstracción y permitiéndole ver el código circundante fácilmente sin el código intermedio (por lo que la adquisición de recursos y la limpieza son ambas visibles).
Si el único cuerpo de la cláusula if es una llamada a una función y una asignación para realizar una prueba, seguida de otra cláusula if, en lenguajes como C, donde las asignaciones son expresiones (tienen un valor) y las expresiones booleanas son cortocircuitadas, éstas pueden combinarse:
Estructura de control de decisión
Puede colocar sentencias de control dentro de otras sentencias de control, por ejemplo un bloque If…Then…Else dentro de un bucle For…Next. Una sentencia de control colocada dentro de otra sentencia de control se dice que está anidada.
Las estructuras de control en Visual Basic pueden anidarse a tantos niveles como se desee. Es una práctica común hacer que las estructuras anidadas sean más legibles sangrado el cuerpo de cada una. El editor del entorno de desarrollo integrado (IDE) lo hace automáticamente.
Asimismo, en las sentencias If anidadas, las sentencias End If se aplican automáticamente a la sentencia If anterior más cercana. Los bucles Do anidados funcionan de manera similar, con la sentencia Loop más interna coincidiendo con la sentencia Do más interna.
En muchas estructuras de control, cuando se hace clic en una palabra clave, se resaltan todas las palabras clave de la estructura. Por ejemplo, cuando hace clic en If en una construcción If…Then…Else, se resaltan todas las instancias de If, Then, ElseIf, Else y End If en la construcción. Para moverse a la siguiente o anterior palabra clave resaltada, presione CTRL+Mayúscula+Flecha hacia abajo o CTRL+Mayúscula+Flecha hacia arriba.