Programacion

Páginas: 6 (1308 palabras) Publicado: 25 de marzo de 2014
4.10  Sentencias C++
§1  Sinopsis
Las sentencias ("Statements") especifican y controlan el flujo de ejecución del programa. Si no existen sentencias específicas de selección o salto, el programa se ejecuta de forma secuencial en el mismo orden en que se ha escrito el código fuente (es el que podríamos considerar orden "natural" de ejecución).
En este capítulo explicaremos los distintos tiposde sentencias que existen en C++, pero antes ofreceremos una descripción formal de las mismas señalando qué se entiende por sentencia.
§2  Definición
Una expresión es una secuencia de operadores; operandos; elementos de puntuación y palabras clave, que especifican una computación. Tiene sentido computacional en sí misma y equivale a una frase en el lenguaje normal. Entre sus característicasdistintivas están las de poder producir un resultado y posibles efectos laterales. Ejemplo:
extern x;        // No produce un valor
y = 22;          // Produce un valor
z = i++;         // Valor + efectos laterales

Cualquier expresión finalizada en un punto y coma ; forma una sentencia:
< expresión >;
C++ ejecuta las sentencias evaluando la expresión. Todos los efectos colaterales de laevaluación son tenidos en cuenta antes de ejecutar la próxima sentencia. La mayoría de sentencias C++ son asignaciones o llamadas a funciones.
Un caso especial es la sentencia nula; consiste en un punto y coma (;) aislado. Una sentencia nula no hace nada, pero puede ser necesaria en situaciones en que la sintaxis del lenguaje espere una sentencia pero nuestro programa no necesita hacer nada.
Nota:como la mayoría de las cosas de C++, la definición anterior tiene su excepción. Existe un tipo especial de sentencia, las directivas de preproceso  en las que el punto y coma puede omitirse. Este tipo de sentencias no ejecuta una computación de tiempo de ejecución sino de compilación (realizan modificaciones sobre el fuente). Entre las que sí ejecutan una computación en runtime también existe una,las etiquetas directas, que no terminan en punto y coma sino en dos puntos :  (ver a continuación )
§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 etiquetaDe 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), lassentencias 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 sentenciascompuestas, 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 comportencomo 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...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programación
  • Programacion
  • Programacion
  • Programación
  • Programacion
  • Programacion
  • Programacion
  • Programacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS