Bloque while
En Lenguaje C, la estrucura de control while (estructura de control repetitiva) posee la siguiente sintaxis:
while(condición) Acción;
En este caso, la sentencia Acción es ejecutada mientras el condicional condición se evalúa verdadera (distinta de 0)
En el caso de que el cuerpo del while (acciones a ejecutar en caso de que el condicional se verifique) posea más de una sentencia, todas ellas son encerradas entre llaves:
while(condición)
{
Acción1;
Acción2;
...
}
El condicional es una expresión relacional que puede involucrar operadores relacionales (>, <, >=, <=, ==, !=) y/o operadores logicos (&&, ||, !)
Ejemplo:
ejem_while.c
/*
Programa que imprime la tabla de conversión de
Fahrenheit a Celsius para F = 0, 20, 40,..., 300
*/
#include <stdio.h>
int main()
{
int Lower, Upper, Step;
float Fahr, Celsius;
Lower = 0;
Upper = 300;
Step = 20;
Fahr = Lower;
while(Fahr <= Upper)
{
Celsius = (5.0/9.0) * (Fahr - 32.0);
printf("%4.0f F -> %6.1f C\n", Fahr, Celsius);
Fahr = Fahr + Step;
} /* fin del while */
return 0;
} /* fin del main */
Puntos a Notar
- Lazo while(...) { ... }
Lo que se encuentra entre paréntesis es una expresión a evaluar. Mientras el resultado de la misma sea distinto de cero, se ejecutan las sentencias asociadas que se encuentran encerradas entre llaves. A este tipo de sentencias se las llama sentencias compuestas. Si el cuerpo de esta sentencia consiste en una sola sentencia simple, pueden omitirse las llaves. Las sentencias compuestas no llevan el carácter ; como terminador. Para mejorar la legibilidad del programa, conviene sangrar las sentencias compuestas. - Cálculo y asignación:
Celsius = (5.0/9.0) * (Fahr - 32.0)
El punto decimal en los operandos de la división es requerido para que la operación sea llevada en punto flotante; de lo contrario la misma se efectúa como cociente de números enteros, truncando por lo tanto el resultado a cifras enteras. En nuestro caso sería truncado a 0.
ICOM