elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
18 Noviembre 2008, 11:11  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++
| | |-+  Uso de while
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Uso de while  (Leído 332 veces)
HJZR4

Desconectado Desconectado

Mensajes: 99


C0N0C1M13NT0


Ver Perfil
Uso de while
« en: 30 Noviembre 2007, 18:10 »

Es una pregunta tonta (según por donde lo mires). En los tutoriales de C y eso, no dice nada de la función while, si es mala costumbre usarla y tal. Pero pregunto esto porque veo while como goto... Y dicen que goto no es bueno usarlo...

Mi pregunta es: ¿Es mala costumbre usar while?

Ejemplo práctico:
Con goto:
Código:
// ...
etiqueta:
       if (variable != 1)
          {
             goto etiqueta;
          }
       else
          {
             // ...
          }

// ...
Con while:
Código:
// ...
int vale;

while (vale != 0)
     {
       if (variable == 1)
          {
             vale = 0;
          }
       else
          {
             vale = -1;
          }
     }

// ...
Gracias.
HJZR$
« Última modificación: 30 Noviembre 2007, 18:15 por HJZR4 » En línea

Para aprender solo hay una solución:
LeeR y Preguntar
E0N
Lab &
Colaborador

Desconectado Desconectado

Mensajes: 2.756


http://e0n-productions.blogspot.com/


Ver Perfil WWW
Re: Uso de while
« Respuesta #1 en: 30 Noviembre 2007, 18:35 »

No, usar while no esta "mal visto", lo q si esta mal visto es usar goto (nunca entendi por q, pero weno..)eso es solo un ejemplo de  como evitar el uso de goto usando while ;)
En línea

Inaugurado y en construcción:
http://e0n-productions.blogspot.com/
BETA_V

Desconectado Desconectado

Mensajes: 104


Yeah, my pen is a Pistola


Ver Perfil
Re: Uso de while
« Respuesta #2 en: 30 Noviembre 2007, 19:46 »

hola¡¡¡lo que esta mal considerado usar,es el goto,continue y break...aunque el break es impresindible en algunos casos.pero no se deberian usar,,por que estas instrucciones modifican el flujo del programa...pero el while,,do while,, for no estan mal vistas,,
En línea
EvilGoblin

Desconectado Desconectado

Mensajes: 882


LAIN IS LAIN


Ver Perfil
Re: Uso de while
« Respuesta #3 en: 30 Noviembre 2007, 21:22 »

continue y break?..

no sabia que tambien eran de mal gusto =\

Código:
int i;
i=0;
/*Escribimos las primeras 15 variables evitando la Numero 3 y si encontramos el valor q terminamos*/
while(variable[i] <= 15)
{
   if(variable[i] == 3)
     continue;
   if(variable[i]=='q')
      break;
   printf(variable[i]);
   i++;
   
}




;D
En línea



Experimental Serials Lain
brenda hg

Desconectado Desconectado

Mensajes: 8

hay poder en lo que quieres! just do it!


Ver Perfil
Re: Uso de while
« Respuesta #4 en: 30 Noviembre 2007, 21:34 »

umm weno io siempre uso while, pero goto para que ¿?  :-\, la verdad no se ni como se usa, y tambien por lo que he leido en tutoriales, no es recomendable ahhh, mejor usa while jeje asi ia no t complicas tantoo  ;D
saludos!!
En línea

...LA GLORIA SE PUEDE ALCANZAR...!!
EvilGoblin

Desconectado Desconectado

Mensajes: 882


LAIN IS LAIN


Ver Perfil
Re: Uso de while
« Respuesta #5 en: 30 Noviembre 2007, 21:43 »

umm weno io siempre uso while, pero goto para que ¿?  :-\, la verdad no se ni como se usa, y tambien por lo que he leido en tutoriales, no es recomendable ahhh, mejor usa while jeje asi ia no t complicas tantoo  ;D
saludos!!


goto seria una instruccion que genera salto hacia....... x lugar del programa (nada q no pueda solucionarse con funciones)

es demasiado engorroso trabajar con el, ya dejaria de ser estructurado. quizas en un programa de 30 lineas de codigo funcione de maravilla, pero en un programa de 1500 lineas de codigo dudo que funcione bien y sobretodo que lo entiendas.

Es por eso que NO es recomendable usarlo



ejemplo:


Código:
int main()
{
int salir;
funcion1:
printf("di 1, si quieres salir ");
scanf("%i",&salir);
if(salir !=1)
goto funcion1;


printf("saliste del programa\n");


return 0;
}


como veras no es nada lindo =\.. y eso  q son 5 lineas

imaginate si haces 20 funciones y las tienes desparramadas por todo el code.

te volverias loco para que funcione correctamente ^^

suerte =D
En línea



Experimental Serials Lain
brenda hg

Desconectado Desconectado

Mensajes: 8

hay poder en lo que quieres! just do it!


Ver Perfil
Re: Uso de while
« Respuesta #6 en: 30 Noviembre 2007, 22:09 »

umm weno io siempre uso while, pero goto para que ¿?  :-\, la verdad no se ni como se usa, y tambien por lo que he leido en tutoriales, no es recomendable ahhh, mejor usa while jeje asi ia no t complicas tantoo  ;D
saludos!!


goto seria una instruccion que genera salto hacia....... x lugar del programa (nada q no pueda solucionarse con funciones)

es demasiado engorroso trabajar con el, ya dejaria de ser estructurado. quizas en un programa de 30 lineas de codigo funcione de maravilla, pero en un programa de 1500 lineas de codigo dudo que funcione bien y sobretodo que lo entiendas.

Es por eso que NO es recomendable usarlo



ejemplo:


Código:
int main()
{
int salir;
funcion1:
printf("di 1, si quieres salir ");
scanf("%i",&salir);
if(salir !=1)
goto funcion1;


printf("saliste del programa\n");


return 0;
}


como veras no es nada lindo =\.. y eso  q son 5 lineas

imaginate si haces 20 funciones y las tienes desparramadas por todo el code.

te volverias loco para que funcione correctamente ^^

suerte =D

uhh wow jeje si tienes mucha razon se comprende el porquè de no usarla  ;D
wow a veces me dejan hcer programas con muxas lineas  :-\, y para trabajar con  goto puff la veo mal jeje gracias x la breve explicacion saludos !!  ::)
En línea

...LA GLORIA SE PUEDE ALCANZAR...!!
HJZR4

Desconectado Desconectado

Mensajes: 99


C0N0C1M13NT0


Ver Perfil
Re: Uso de while
« Respuesta #7 en: 30 Noviembre 2007, 22:53 »

A eso exactamente me refería, si es mala costumbre usar while y porque es mala elección el goto, aunque me lo imaginaba. Si le quitas a un programa la "gracia" de que sea estructurado.. xD

Lo que no sabía es que el break y continue eran tambien malas opciones... grcias :D  :P
En línea

Para aprender solo hay una solución:
LeeR y Preguntar
Ragnarok
Moderador Global
*****
Desconectado Desconectado

Mensajes: 4.252


Ver Perfil
Re: Uso de while
« Respuesta #8 en: 30 Noviembre 2007, 23:44 »

El goto está mal considerado porque hace difícil seguir el programa, más que nada porque salta de un sitio a otro y no sabes lo que hace. El while no tiene nada de malo, pero en raras ocasiones tendrás un while en lugar de un for, en el que no sólo se especifica la condición de parada sino también la inicialización de las variables involucradas en la condición de parada y las modificaciones que se hacen a las mismas en cada paso.

Creo que es más difícil saber qué hace este programa que lo que hace el de EvilGoblin.

Código
int main(){ 
  int a, b = 100;
  scanf("%i",&a);
  e1:if(a<10) goto e2;
  a = a/2;
  e2:b=a*a;
  if(b<100) goto e1;
 
  return b;
}
En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
Karman

Desconectado Desconectado

Mensajes: 260



Ver Perfil WWW
Re: Uso de while
« Respuesta #9 en: 01 Diciembre 2007, 03:26 »

no es de ninguna manera malo utilizar while, lo que estaba mal visto era utilizar while para bucles infinitos ya que:
Código:
while(1){ <- cada vez que llega a este punto se comprueba la valides de 1
...
}

for(;;){ <- no hay comparaciones...
...
}
en el nivel más básico (assembler) la primera instrución sería algo así:
Código:
.bucle:
.mover condición a acumulador
.condición verdadera?
.saltar a fin
...
...
.saltar a bucle
.fin:
mientras que un for(;;)
Código:
.bucle:
...
...
.saltar a bucle
como se ve hay 3 instrucciones inútiles que se ejecutan por cada vuelta del bucle, aunque esto era antes, hoy en día los compiladores tienen suficiente "inteligencia" para corregir estos errores por lo que en la mayoría se compila directamente como un for...

con respecto a lo del break y continue no es tan así, en los switch la única forma de finalizar una condición es con break, el tema del continue es por la misma razón de goto... para no complicarle la vida a quien vea el código, esto no quiere decir que no se pueda utilizar... solo que no se debe abusar de dichas instrucciones ya que en algunas situaciones el uso de estas instrucciones puede simplificar el código, básicamente está bien utilizarlas cuando con if anidados se complicaría mucho el código...

S2
« Última modificación: 01 Diciembre 2007, 03:29 por Karman » En línea

BETA_V

Desconectado Desconectado

Mensajes: 104


Yeah, my pen is a Pistola


Ver Perfil
Re: Uso de while
« Respuesta #10 en: 01 Diciembre 2007, 04:13 »

hola¡¡¡cuando dije lo del break y el continue,,,,especifique tambien que era necesario para algunas situaciones  ;D
En línea
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC