Sentencias De Control
Enviado por armando10sk • 3 de Agosto de 2011 • 1.024 Palabras (5 Páginas) • 876 Visitas
§2 Clasificación
Dada la definición anterior, resulta evidente que pueden existir infinitas sentencias distintas, e innumerables criterios para su clasificación. Una de las posibles, que además coincide con la clasificación del Estándar, distingue las siguientes clases de sentencia:
• De etiqueta
• De expresión
• Compuestas
• De selección
• De iteración
• De salto
• De declaración
• Bloques de intento
Además de las anteriores, por sus características especiales podríamos considerar las siguientes clases adicionales:
• Sentencias de preproceso
• Sentencias ensamblador
§2.1 Sentencias de etiqueta
En C++ existen tres clases de sentencias etiquetadas: las etiquetas directas ( 4.10.1a), las sentencias case ( 4.10.1b) y las default ( 4.10.1c), estas últimas se utilizan en conjunción con las sentencias switch.
§2.2 Sentencias de expresión
Podríamos decir que son las que no pertenecen a ninguno de los otros grupos y que, en la práctica, son las más abundantes. Generalmente son asignaciones o invocaciones de funciones. Ejemplo:
pint = &x;
foo(c);
§2.3 Sentencias compuestas
Las sentencias compuestas, también denominadas bloques ( 1.3.1) se utilizan en aquellas situaciones en que la sintaxis espera una sentencia pero se necesita usar varias. Ejemplo:
if (first) ++x;
else {
--x; z = a;
}
En caso de cumplirse la condición hay que incrementar x, lo que puede hacerse en una sola sentencia, pero si la condición resulta falsa, se precisan dos computaciones. Para que se comporten como una sola frente a else, se recurre a englobarlas en un bloque entre llaves { ... }. Las sentencias dentro del bloque se comportan como una sola y constituyen un ámbito léxico. Los identificadores definidos en su interior eclipsan a los exteriores y las variables automáticas creadas en él son destruidas al salir del ámbito.
§2.4 Sentencias de selección
Las sentencias de selección o de control de flujo, pueden decidir entre varios cursos de acción distintos en función de ciertos valores. Existen dos tipos de estas sentencias de selección: if...else ( 4.10.2) y switch ( 4.10.2).
Ejemplos:
switch ( foo() ) {
case 0: case 1:
if (first) break;
else ++x;
case 2:
...
default:
break;
}
§2.5 Sentencias de iteración
Las sentencias de iteración permiten repetir un conjunto de sentencias ejecutando un bucle. En C++ existen tres formas de iteraciones: los bucles while ( 4.10.3), do…while ( 4.10.3) y for ( 4.10.3).
Ejemplo:
while (first) {
...
for (int x = 1; x < y; ++x) {
...
do { // begin second
...
...
} while (second); // end second
...
} // end for
...
} // end first
§2.6 Sentencias de salto
Las sentencias de salto permiten transferir el control del programa de forma incondicional. Existen cuatro de estas sentencias: break ( 4.10.4), continue ( 4.10.4), (
...