Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Caster en 31 Octubre 2012, 20:00 pm



Título: Duda sobre el uso de break;
Publicado por: Caster en 31 Octubre 2012, 20:00 pm
Pues queria saber si se puede usar break de esta forma:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int x;
  6. x = getchar();
  7. while (x <= 100)
  8. if (x < 0)
  9. puts("[!] VALOR NEGATIVO DE X [!]"); break;
  10. return 0;
  11. }
  12.  

Supuestamente segun el libro que estoy leyendo el break haria que se salga del bucle while, pero al compilar el codigo me da error, no se si es un fallo mio o es que este uso de break no es correcto, se que otra forma de hacer esto seria dejando la condicion del while asi:

Código
  1. while (x <= 100 && x > 0)

Pero eso no me importa, lo que quiero saber es si el uso que le doy a break es correcto. El error que me da el compilador es el siguiente:

Citar
la declaración break no está dentro de un bucle o switch

Saludos


Título: Re: Duda sobre el uso de break;
Publicado por: $Edu$ en 31 Octubre 2012, 20:25 pm
Seguramente andarias despistado porque te has olvidado de las llaves. El while esta "capturando" el if solamente y el if "captura" solamente al "puts..". El "break;" esta fuera del if entonces fuera del While. Por eso el mensaje de que esta afuera de un bucle.

Codigo:

Código
  1. int main()
  2. {
  3. int x;
  4. x = getchar();
  5. while (x <= 100) {
  6. if (x < 0) {
  7. puts("[!] VALOR NEGATIVO DE X [!]"); break; }
  8.         }
  9. return 0;
  10. }

Lo puse asi pero no se bien que es lo que necesitas "capturar" en cada caso.

Consejo: No programar muy tarde a la noche xD

pd: Supongo que tengo razon, yo no programo en C++ pero mi logica me dice que es como dije, saludos!


Título: Re: Duda sobre el uso de break;
Publicado por: Caster en 31 Octubre 2012, 20:34 pm
Gran fallo mio, exactamente era ese el fallo, ando algo espeso ahora mismo  :xD

Saludos y muchas gracias