consulta

Páginas: 6 (1308 palabras) Publicado: 29 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;
y = 22;
z = i++;

// No produce un valor
// Produce un valor
// 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 la evaluación
sontenidos 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 lamayorí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, lasetiquetas 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 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: lasetiquetas 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, seprecisan 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...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Consulta
  • consulta
  • CONSULTAS
  • CONSULTA
  • consulta
  • Consulta
  • consulta
  • Consulta

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS