Italian subtitles

← cs101_unit2_25_s_break

dummy description

Get Embed Code
8 Languages

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

  1. Questa è la risposta.
  2. La prima è equivalente.
  3. La ragione di ciò è che abbiamo il nostro codice qui che ha "if false".
  4. False non sarà mai True, così non eseguiremo mai la "break",
  5. non raggiungeremo mai quel codice.
  6. Eseguiremo semplicemente l'istruzione nuovamente e avremo la stessa cosa con cui siamo partiti.
  7. Ogni volta il test è vero, eseguiamo l'istruzione.
  8. La seconda non è equivalente, e la ragione è che la "break"
  9. fermerà il loop.
  10. Se il ciclo sarà eseguito più di una volta in questa versione,
  11. e se andiamo attraverso il ciclo due volte.
  12. In questo caso possiamo solo e unicamente andare attraverso l'istruzione una sola volta,
  13. dal momento che attraversiamo l'istruzione la prima volta, raggiungiamo la "break" e abbiamo finito.
  14. La terza non è equivalente, qui abbiamo un "while true" che eseguirà
  15. per sempre eccetto che abbiamo la "break" e questa lo stopperebbe.
  16. Il problema è che la condizione di test per la break è la stessa della
  17. condizione di test per la "while", ma dovrebbe essere veramente l'opposto.
  18. Nella "while" andiamo avanti tanto a lungo quanto la condizione di test è vera.
  19. Il modo in cui ho scritto il codice qui, se la condizione di test è vera, ci fermiamo.
  20. Per questa per essere equivalente, quello che invece dovremmo aver scritto
  21. dovrebbe aver preso l'opposto della condizione di test, così se avessi avuto "if not"
  22. -- il quale cambia vero a falso e falso a vero, nella la condizione di test,
  23. e nella break -- sarebbe stato equivalente al ciclo originale.
  24. Quello che abbiamo non lo è.
  25. L'ultimo è il più complicato.
  26. Questo è realmente sempre equivalente al ciclo originale.
  27. La ragione di ciò è che se pensiamo all'esecuzione,
  28. nel loop originale, se la condizione di test è vera, domandiamo il codice dell'istruzione "S"
  29. e andiamo avanti.
  30. Se la condizione di test è vera la seconda volta, eseguiamo "S" nuovamente
  31. e andiamo avanti.
  32. Se guardiamo a quello che succede qui -- se la condizione di test è vera,
  33. eseguiamo "S".
  34. Se la condizione di test è vera ancora, eseguiamo "S" e andiamo avanti.
  35. Questo è lo stesso comportamento.
  36. Dovremmo tracciarlo nel caso dove la condizione di test sia
  37. non vera.
  38. Qui -- se la condizione di test è vera, eseguiamo "S"
  39. Se non è vera la seconda volta, allora abbiamo finito col loop
  40. e continuiamo.
  41. In questo caso se la condizione di test è vera a prima volta, eseguiremo "S".
  42. Se non è vera la seconda volta, allora andremo nella "else".
  43. Così se essa non è vera, andiamo alla "else" e andremo alla "break" e
  44. la "break" ci porterà fuori dal loop.
  45. Abbiamo lo stesso esatto comportamento dove eseguiamo "T" una sola volta, allora
  46. eseguiamo "S", e poi eseguiamo "T".
  47. Non eseguiamo "S" di nuovo, e saltiamo fuori dal ciclo per continuare.
  48. Così queste due sono equivalenti e le altre due diverse.