Spanish subtitles

← 02-46 Solución Break

dummy description

Get Embed Code
8 Languages

Showing Revision 2 created 08/01/2014 by Fran Ontanaya.

  1. Aquí está la respuesta.
  2. La primera es equivalente.
  3. La razón para esto es que nuestro código tiene aquí If false.
  4. Falso nunca será verdadero, entonces realmente nunca se ejecutará el break,
  5. bueno, nunca llega a ese código.
  6. Simplemente ejecutaremos la sentencia de nuevo y obtendremos la misma cosa con la que empezamos.
  7. Cada vez que la prueba es verdadera ejecutaremos la sentencia.
  8. El segundo no es equivalente, y la razón para esto que el break
  9. detendrá el bucle.
  10. Si el bucle se ejecutaría mas de una vez en esta versión,
  11. y si vamos a traves del bucle dos veces,
  12. en este caso sólo podemos ir a través de la sentencia una sola vez,
  13. dado de que despues de que pasamos por la sentencia una vez, alcanzamos el break y entonces terminamos.
  14. La tercera no es equivalente, aquí tenemos un while true que se ejecutará
  15. para siempre excepto para el break que tenemos aquí y lo detendría.
  16. El problema es que la condicion de prueba para el break es la misma que
  17. la condición de prueba para el while, pero en realidad debería ser lo opuesto.
  18. En el while continuamos ejecutando mientras la condición de prueba es verdadera.
  19. La forma en que he escrito el código aquí, si la condición de prueba es verdadera nos detemos.
  20. Para que esto sea equivalente, lo que deberíamos haber escrito en lugar de eso
  21. es que la condición de prueba opuesta, osea si tenemos if not
  22. lo cual cambia verdadero a falso y falso a verdadero, entonces la condición de prueba,
  23. y luego el break, esto sería equivalente al bucle original.
  24. Lo que tenemos aquí no lo es.
  25. La última es más complicada.
  26. Esta es realmente siempre equivalente al bucle original.
  27. La razón de esto es si pensamos a través de la ejecución. En el bucle
  28. original, si la condición de prueba es verdadera, requerimos dar la sentencia S
  29. y luego continuamos.
  30. Si la condición de prueba es verdadera la segunda vez, ejecutamos S de nuevo
  31. y seguimos.
  32. Si nos fijamos en lo que sucede aquí, bueno, si la condición de prueba es verdadera
  33. ejecutamos S
  34. Luego si la condición de prueba es verdadera de nuevo, ejecutamos S y continuamos.
  35. Eso tiene el mismo comportamiento.
  36. Deberíamos seguir el caso donde la condición de prueba
  37. no es verdadera.
  38. Aquí, si la condición de prueba fue verdadera, ejecutamos S.
  39. Si no es verdadera la segunda vez, hemos terminado con el bucle
  40. y continuamos.
  41. En este caso si la condición de prueba es verdad la primera vez, ejeuctaremos S
  42. si no es verdad la segunda vez, entonces vamos al else
  43. Entoces si no es verdadera vamos al else y luego vamos al break y
  44. el break sale del bucle.
  45. Tenemos exactamente el mismo comportamiento donde ejecutamos T una vez, luego
  46. ejecutamos S y luego ejecutamos T
  47. No ejecutamos S de nuevo y terminamos fuera del bucle para continuar
  48. Entonces estas dos son equivalentes y las otras dos son diferentes.