Cual es la mejor manera para validar una entrada?

Iniciado por oblivionxor, 14 Febrero 2013, 18:05 PM

0 Miembros y 1 Visitante están viendo este tema.

oblivionxor

Hola que tal! Vengo con otra pequeña duda. Solamente quisiera saber cual de los siguientes bloques de código es el mas apropiado u optimizado para leer dígitos y validarlos:

Este:

#include <stdio.h>

int main()
{
int a;

scanf( "%d", &a );

while ( a > 5 )
{
printf( "El numero debe ser menor a 5, ingresa otro: " );
scanf( "%d", &a );
}

printf( "Correcto!" );

return 0;
}


O este:

#include <stdio.h>

int main()
{
int a;

do
{
scanf( "%d", &a );

if ( a > 5 )
printf( "El numero debe ser menor a 5, ingresa otro: " );
} while ( a > 5 );

printf( "Correcto!" );

return 0;
}


DickGumshoe

A mí me gusta y me parece más correcta la segunda forma. En este programa apenas se nota, porque es una prueba, pero a lo largo de tus proyectos encontrarás códigos largos. Ahí agradecerás ver un código lo más simplificado y claro posible. En la segunda forma no tienes que repetir la misma sentencia dos veces, por lo que ahorras código (para ti) y tiempo (para ti y para los que necesiten leerlo).

Un saludo.  ;)

oblivionxor

Ok consejo anotado DickGumshoe muchas gracias!

krafta

En todo caso es mejor el while, porque valida primero.
Mientras que en el Do while entra y despues valida
::)

leosansan

Cita de: krafta en 17 Febrero 2013, 18:00 PM
En todo caso es mejor el while, porque valida primero.
Mientras que en el Do while entra y despues valida
::)

Si no leo mal el código, en el while primero entra, con el scanf, y después valida el while. O sea, lo mismo que en el do-while.:silbar:

Sobre la claridad, opino lo mismo que DickGumshoe.

Saluditos!.