Chinese, Simplified subtitles

← cs101_unit2_25_s_break

dummy description

Get Embed Code
8 Languages

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

  1. 下面是答案
  2. 选项一是等同的
  3. 因为这里的代码是“if False”(如果 假)
  4. “假”永远不会为真 所以“break”永远不会真正运行
  5. 我们永远不会执行那些编码
  6. 我们只会再次运行该语句 和开始时一样
  7. 每次测试为真 我们就执行该语句
  8. 选项二不等同
  9. 因为这个“break”会中断循环
  10. 如果该循环在这种情况下执行超过一次
  11. 在这里 我们可以运行该循环两次
  12. 但在这里 我们只能执行该语句一次
  13. 因为执行该语句一次后 我们就到了“break” 然后就结束了
  14. 选项三不是等同的 这里的“while true”会永远运行下去
  15. 除非我们有“break”来中断该循环
  16. 问题是 这里break的测试条件和“while”的是一样的
  17. 但却应该是相反的
  18. 只要测试条件为真 “while”就不断继续
  19. 但根据这里的编码 如果测试条件为真 循环就中断
  20. 要让选项三等同于题干所给循环
  21. 我们应该写一个相反的测试条件
  22. 也就是说 如果这里写的是“if not”(如果不) 然后是测试条件
  23. 然后是break——这就等同于原来的循环了
  24. 但是选项三并不是这样的
  25. 最后一个选项是最复杂的
  26. 事实上 该选项总是等同于原来的循环
  27. 我们来看一下执行的过程
  28. 在原来的循环中 如果测试条件为真 我们执行语句“S”
  29. 然后继续
  30. 如果测试条件再次为真 我们就再次执行“S”
  31. 然后继续
  32. 再来看选项四——如果测试条件为真
  33. 我们就执行“S”
  34. 如果测试条件再次为真 我们执行“S” 然后继续
  35. 这和原来的循环是一样的
  36. 下面我们来看
  37. 测试条件不为真时的情况
  38. 这里——如果测试条件为真 我们就执行“S”
  39. 如果第二次不为真 循环就中断
  40. 然后继续
  41. 在这里 如果第一次测试条件为真 我们执行“S”
  42. 如果第二次不为真 我们就执行“else”(否则)
  43. 然后执行“break”
  44. 循环中断
  45. 这和原来的循环是完全一致的
  46. 先执行“T” 然后执行“S” 然后再执行“T”
  47. 然后就不再执行“S” 而是中断循环 继续后面的编码
  48. 所以这两个是等同的 而那两个不是