Curso de C++ v2.0
Consultas, lista de correo 'C++ Con Clase' 'C++ Con Clase' página de entrada Librerías estándar C Tabla de contenido Contactar con Webmaster
*Introducción
*1 Toma de contacto
*2 Variables I
*3 Funciones I: Declaración y definición
*4 Operadores I
*5 Sentencias
 . Bloques
 . Expresiones
 . Bucles
 . Etiquetas
 . Seleccion
 . Salto
 . Ejercicios capítulo 5
*6 Declaración de variables
*7 Normas para la notación
*8 Cadenas de caracteres
*9 Conversión de tipos
*10 Variables II: Arrays
*11 Variables III: Estructuras
*12 Variables IV: Punteros 1
*13 Operadores II: Más operadores
*14 Operadores III: Precedencia
*15 Funciones II: Parámetros por valor y referencia
*16 Variables V: Uniones
*17 Variables VI: Punteros 2
*18 Operadores IV: De bits y condicional
*19 Definición de tipos
*20 Funciones III
*21 Funciones IV: Sobrecarga
*22 Operadores V: Sobrecarga
*23 El preprocesador
*24 Funciones V: Recursividad
*25 Variables VII: Modificadores
*26 Espacios con nombre
*27 Clases I: Definiciones
*28 Declaración de clases
*29 Constructores
*30 Destructores
*31 El puntero this
*32 Sistema de protección
*33 Modificadores para miembros
*34 Más sobre funciones
*35 Operadores sobrecargados
*36 Herencia
*37 Funciones virtuales
*38 Derivación múltiple
*39 Trabajar con ficheros
*40 Plantillas
*41 Punteros a miembros
*42 Castings
*43 Excepciones
*Ejemplos capítulos 1 a 6
*Ejemplos capítulos 8 y 9
*A Palabras reservadas C/C++
*B Trigrafos y símbolos alternativos
*C Librerías estándar
*D Streams
<< < > >>

Sentencias de salto   

Este tipo de sentencia permite romper la ejecución secuencial de un programa.

Sentencia de ruptura "break"

El uso de esta sentencia dentro de un bucle pasa el control a la primera sentencia después de la sentencia de bucle. Lo mismo se aplica a la sentencia "switch". Sintaxis:

break 

Ejemplo:

y = 0;
x = 0;
while(x < 1000)
{
   if(y == 1000) break;
   y++;
}
x = 1;

En este ejemplo el bucle no terminaría nunca si no fuera por la línea del "break", ya que x no cambia. Después del "break" el programa continuaría en la línea "x = 1".

Sentencia de "continue"

El uso de esta sentencia dentro de un bucle pasa el control al final de la sentencia de bucle, justo al punto donde se evalúa la condición para la permanencia en el bucle. Sintaxis:

continue

Ejemplo:

y = 0;
x = 0;
while(x < 1000)
{
   x++;
   if(y >= 100) continue;
   y++;
}

En este ejemplo la línea "y++" sólo se ejecutaría mientras "y" sea menor que 100, en cualquier otro caso el control pasa a la línea "}", con lo que el bucle volvería a evaluarse.

Sentencia de salto "goto"

Con el uso de esta sentencia el control se transfiere directamente al punto etiquetado con el identificador especificado. El "goto" es un mecanismo que está en guerra permanente, y sin cuartel, con la programación estructurada. El "goto" no se usa, se incluye aquí porque existe, pero siempre puede y debe ser eludido. Existen mecanismos suficientes para hacer todo aquello que pueda realizarse con un "goto". Sintaxis:

goto <identificador>

Ejemplo:

x = 0;
Bucle:
x++;
if(x < 1000) goto Bucle;

Este ejemplo emula el funcionamiento de un bucle "for" como el siguiente:

for(x = 0; x < 1000; x++); 

Sentencia de retorno "return"

Esta sentencia sale de la función donde se encuentra y devuelve el control a la rutina que la llamó, opcionalmente con un valor de retorno. Sintaxis:

return [<expresión>]

Ejemplo:

int Paridad(int x)
{
   if(x % 2) return 1; 
   return 0;
}

Este ejemplo ilustra la implementación de una función que calcula la paridad de un parámetro. Si el resto de dividir el parámetro entre 2 es distinto de cero, implica que el parámetro es impar, y la función retorna con valor 1. El resto de la función no se ejecuta. Si por el contrario el resto de dividir el parámetro entre 2 es cero, el parámetro será un número par y la función retornará con valor cero.

Sobre las sentencias de salto y la programación estructurada

Lo dicho para la sentencia "goto" es válido en general para todas las sentencias de salto, salvo el "return" y el "break", este último tiene un poco más de tolerancia, sobre todo en las sentencias "switch", donde resulta imprescindible. En general, es una buena norma huir de las sentencias de salto.

Comentarios

No se trata propiamente de un tipo de sentencias, pero me parece que es el lugar adecuado para introducir este concepto. En C pueden introducirse comentarios en cualquier parte del programa, estos comentarios ayudarán a seguir el funcionamiento del programa durante la depuración o en la actualización del programa, además de documentarlo. Los comentarios en C se delimitan entre /* y */, cualquier cosa que escribamos en su interior será ignorada por el compilador, sólo está prohibido su uso en el interior de palabras reservadas o en el interior de identificadores. Por ejemplo:

main(/*Sin argumentos*/void) 

está permitido, sin embargo:

ma/*función*/in(void) 

es ilegal, se trata de aclarar y documentar, no de entorpecer el código.

En C++ se ha incluido otro tipo de comentarios, que empiezan con //. Estos comentarios no tienen marca de final, sino que terminan cuando termina la línea. Por ejemplo:

void main(void) // Esto es un comentario 
{
}

Las llaves {} no forman parte del comentario.

Palabras reservadas usadas en este capítulo

break, case, continue, default, do, else, for, goto, if, return, switch y while.

<< < > >>