Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: oblivionxor en 14 Febrero 2013, 18:05 pm



Título: Cual es la mejor manera para validar una entrada?
Publicado por: oblivionxor en 14 Febrero 2013, 18:05 pm
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:
Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int a;
  6.  
  7. scanf( "%d", &a );
  8.  
  9. while ( a > 5 )
  10. {
  11. printf( "El numero debe ser menor a 5, ingresa otro: " );
  12. scanf( "%d", &a );
  13. }
  14.  
  15. printf( "Correcto!" );
  16.  
  17. return 0;
  18. }
  19.  

O este:
Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int a;
  6.  
  7. do
  8. {
  9. scanf( "%d", &a );
  10.  
  11. if ( a > 5 )
  12. printf( "El numero debe ser menor a 5, ingresa otro: " );
  13. } while ( a > 5 );
  14.  
  15. printf( "Correcto!" );
  16.  
  17. return 0;
  18. }
  19.  


Título: Re: Cual es la mejor manera para validar una entrada?
Publicado por: DickGumshoe en 14 Febrero 2013, 18:53 pm
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.  ;)


Título: Re: Cual es la mejor manera para validar una entrada?
Publicado por: oblivionxor en 14 Febrero 2013, 19:22 pm
Ok consejo anotado DickGumshoe muchas gracias!


Título: Re: Cual es la mejor manera para validar una entrada?
Publicado por: 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
 ::)


Título: Re: Cual es la mejor manera para validar una entrada?
Publicado por: leosansan en 17 Febrero 2013, 21:21 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!.