Inicio | Artículos | Biografías | Cursos | Entrevistas | Frases | Libros | Diccionario | Presentaciones | Servicios | Videos | Mapa Web | Enlazar | Contactar | Acerca de


CURSO/TUTORIAL DE LENGUAJE C
Introducción
Introducción
Fases de la Puesta a Punto de un Programa en C
Estructura de un Programa
Tipos de Instrucciones
Mi primer Programa
Elementos Básicos
Tipos de Datos
Identificadores
Variables
Constantes
Operadores y Expresiones
Funciones printf y scanf
Comentarios
La Función fflush
Tipos de Errores
Instrucciones de Control
Instrucciones Alternativas
Instrucciones Repetitivas
Instrucciones De Salto
CarlosPes.comCurso de Lenguaje C > Instrucción while en Lenguaje C

Instrucción while en Lenguaje C

¿Para qué sirve la instrucción repetitiva mientras (while) en C?

En lenguaje C, para escribir una instrucción while (repetitiva mientras) se utiliza la sintaxis:
while ( <expresión_lógica> )
{
   <bloque_de_instrucciones>
}
Cuando el <bloque_de_instrucciones> sólo contiene una instrucción, los caracteres abrir llave ({) y cerrar llave (}) son opcionales.

Por otra parte, al igual que en las instrucciones alternativas doble y simple, a la <expresión_lógica> de una instrucción repetitiva
while, también se le llama condición.

Para que se ejecute el <bloque_de_instrucciones>, la condición tiene que ser verdadera. Por el contrario, si la condición es falsa, el <bloque_de_instrucciones> no se ejecuta.

Por tanto, cuando el
flujo de un programa llega a un bucle while, existen dos posibilidades:
  1. Si la condición se evalúa a falsa, el bloque de instrucciones no se ejecuta, y el bucle while finaliza sin realizar ninguna iteración.
  2. Si la condición se evalúa a verdadera, el bloque de instrucciones sí que se ejecuta y, después, se vuelve a evaluar la condición, para decidir, de nuevo, si el bloque de instrucciones se vuelve a ejecutar o no. Y así sucesivamente, hasta que, la condición sea falsa.
El <bloque_de_instrucciones> de un bucle while puede ejecutarse cero o más veces (iteraciones). Si el <bloque_de_instrucciones> se ejecuta al menos una vez, seguirá ejecutándose repetidamente, mientras que, la condición sea verdadera. Pero, hay que tener cuidado de que el bucle no sea infinito.

Cuando la condición de un bucle
while se evalúa siempre a verdadera, se dice que se ha producido un bucle infinito, ya que, el programa nunca termina. Un bucle infinito es un error lógico.

Es importante hacer hincapié en el hecho de que, en un bucle
while, primero se evalúa la condición y, en el caso de que ésta sea verdadera, entonces se ejecuta el bloque de instrucciones. Veremos que, en el bucle do while, el procedimiento es al revés. En él, primero se ejecuta el bloque de instrucciones y, después, se evalúa la condición.

Para que un bucle
while no sea infinito, en el bloque de instrucciones debe ocurrir algo para que la condición deje de ser verdadera. En la mayoría de los casos, la condición se hace falsa al cambiar el valor de una variable.

En resumen, una instrucción repetitiva
while permite ejecutar, repetidamente, (cero o más veces) un bloque de instrucciones, mientras que, una determinada condición sea verdadera.

Ejemplo 1: Se quiere escribir un programa que muestre por pantalla los primeros diez números naturales:

   1 2 3 4 5 6 7 8 9 10
En lenguaje C, para resolver el problema de este ejemplo se puede escribir:
#include <stdio.h>

int main()
{
   int contador;

   printf( "\n   " );

   contador = 1; /* Inicialización del contador */
   while ( contador <= 10 )        /* Condición */
   {
      printf( "%d ", contador );   /* Salida */
      contador++;    /* Incremento del contador */
   }

   return 0;
}
Ejemplo 2: Se quiere escribir un programa que:

1º) Pida por teclado la nota (dato real) de una asignatura.
2º) En el caso de que la nota sea incorrecta, muestre por pantalla el mensaje:
  • "ERROR: Nota incorrecta, debe ser >= 0 y <= 10".
3º) Repita los pasos 1º y 2º, mientras que, la nota introducida sea incorrecta.
4º) Muestre por pantalla:
  • "APROBADO", en el caso de que la nota sea mayor o igual que 5.
  • "SUSPENDIDO", en el caso de que la nota sea menor que 5.
En pantalla:

   Introduzca nota (real): 12.4

   ERROR: Nota incorrecta, debe ser >= 0 y <= 10

   Introduzca nota (real): -3.3

   ERROR: Nota incorrecta, debe ser >= 0 y <= 10

   Introduzca nota (real): 8.7

   APROBADO
El código propuesto es:
#include <stdio.h>

int main()
{
   float nota;

   printf( "\n   Introduzca nota (real): " );
   scanf( "%f", &nota );

   /* Si la primera nota introducida por el
      usuario es correcta,
      el bucle no itera ninguna vez. */

   while ( nota < 0 || nota > 10 )
   {
      printf( "\n   ERROR: Nota incorrecta, debe ser >= 0 y <= 10\n" );
      printf( "\n   Introduzca nota (real): " );
      scanf( "%f", &nota );
   }

   /* Mientras que el usuario introduzca una
      nota incorrecta, el bucle iterará.
      Y cuando introduzca una nota correcta,
      el bucle finalizará. */

   if ( nota >= 5 )
      printf( "\n   APROBADO" );
   else
      printf( "\n   SUSPENDIDO" );

   return 0;
}
En el programa, el bucle while se ha usado para validar la nota introducida por el usuario. En programación, es muy frecuente usar el bucle while para validar (filtrar) datos. Al bucle que se utiliza para validar uno o más datos, también se le conoce como filtro.
Artículos Interesantes
Artículos de Desarrollo Web
Artículos de Informática
Artículos de Programación
Artículos de SEO
Cursos/Tutoriales de Informática
Curso/Tutorial de Algoritmos
Curso/Tutorial de Informática Básica
Curso/Tutorial de Ingeniería del Software
Curso/Tutorial de Lenguaje C
Curso/Tutorial de Marketing en Internet
Curso/Tutorial de Turbo Pascal
Curso/Tutorial de Representación de los Datos
Curso/Tutorial para Webmasters
Curso/Tutorial Web 2.0
Curso de SEO
Libros de Carlos Pes
36 Pasos Básicos para Desarrollar un Sitio Web
Empezar de Cero a Programar en Lenguaje C
Fundamentos del SEO
Libros Recomendados
Libros de Analítica Web
Libros de Desarrollo Web
Libros de Java
Libros de Lenguaje C
Libros de Marketing Online
Libros de Pascal (Turbo Pascal)
Libros de SEO
Libros de Visual Basic
Recursos de Informática
Diccionario de Informática
Ejercicios de Programación
Guías de uso de Software
Sintaxis de Lenguajes de Programación
Biografías
Entrevistas
Frases y Citas
Recursos Educativos
Presentaciones Educativas
Videos Educativos
Enlaces Web
Servicios
Desarrollo de Sitios Web
Diseño Web
Aplicaciones Web
Marketing Online
Formación y Conferencias
Consultoría
Acerca de Carlos Pes
Bibliotecas
Colaboradores
Contactar
Enlazar
Librerías
Perfiles en Internet
Mapa Web
Blog de Carlos Pes Blog de Carlos Pes
Google+ CarlosPes.Com en Google+
© 2006-2017 CarlosPes.com