UTNianos

Versión completa: Duda boluda de lenguaje C
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Chicos, tengo una duda del lenguaje C. Pregunto aca por que me van a responder mas rapido que en el topic de electronica =P.

Me aparece lo siguiente en un ejercicio:

while (w->sig) {
if (w->sig->data < w->data) break;
w=w->sig;
}
seria igual si lo escribo asi:

while (w->sig) {
if (w->sig->data < w->data)
{
break;
}
else
{
w=w->sig;
}
}

es lo mismo o estoy entendiendo mal el Break?
no es lo mismo porque en la opcion 1

w=w->sig;
se ejecuta siempre entre o no al if, se cumpla o no la condicion del if....

en cambio en la opcion 2 ,
w=w->sig;
solo se ejecuta si no se cumple la condicion del if (osea si w->sig->data NO ES MENOR a w->data)... porque esta dentro del ELSE
se entiende?
Ok. entonces en la opcion 1. Para que esta el break?? el break interrumpe solamente el while?

mi confusion es por el break. Al principio pensaba que si no se cumple la condicion del if, break del if (terminaba el if) que no le veia el sentido. Pero no.. el break es del while. Correcto?

Muchas gracias de antemano
Es lo mismo a nivel funcional.
Si entra al if, nunca va a llegar al w=w->sig por el break (si, es del while).
Si no entra al if, siempre va a entrar al w=w->sig ya sea por el else o por continuar normalmente con el while
Gracias!. Ya lo pueden cerrar.
URLs de referencia