YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Chinese, Simplified subtitles

← Using Variables

Get Embed Code
13 Languages

Showing Revision 3 created 08/27/2016 by Udacity Robot.

  1. 在接下来的一组测验中
  2. 我要给你展示变量是如何使用的
  3. 你在第二部分做的所有程序都将会编译
  4. 这意味着计算机能够理解写下的代码
  5. 我们能够创建一个应用
  6. 当程序能在手机上运行时
  7. 它可能不会按照预期目标运行
  8. 这是一个逻辑错误
  9. 逻辑错误意味着有你编写代码时的
  10. 的逻辑有一些错误
  11. 我们来看这个小程序
  12. 和一个示例场景 我将引导你如何去解决它们
  13. 好 这里是一个例子
  14. 每个程序都有一个目标 将它们写在这
  15. 程序本身在这个绿色的框里
  16. 所以 这个程序的目标是计算所谓的睡眠欠债
  17. 你需要的睡眠时间在不同的年龄会不同 但是一般情况下
  18. 人们每晚大约需要8小时的睡眠
  19. 这个程序试图计算一周的睡眠欠债
  20. 程序用户将继续估计他们平均一周睡多长时间
  21. 以及平均每天睡多长时间
  22. 对于这个例子 我们假设用户平日里睡5个小时
  23. 在周末睡9个小时
  24. 在这个绿色的框里是这个任务的代码
  25. 你要做的第一件事是阅读这个代码
  26. 并决定目标是否已经实现
  27. 然后 你要做的是浏览代码里的每个语句
  28. 决定在屏幕上显示什么
  29. 假设这些方法在这里调用 看起来像 display
  30. 括号
  31. 和它们之间的代码 将显示在屏幕上
  32. 现在 其中的一些问题将会有他们想要展示的多个内容块
  33. 所以你可能看到 display1 display2 display3
  34. 如果你仍然在看这个视频
  35. 你可能想知道如何解决这些问题
  36. 这不是第一次处理多个变量
  37. 它的值可能在问题里多次改变
  38. 所以在你毫无头绪之前 我来展示第一个
  39. 现在我要使用一个叫做手工模拟的技术
  40. 这种技术涉及的是试图理清计算机正在做的
  41. 不需要非在计算机上运行
  42. 对于我们来说 它只是一个组织方式来用一个变量
  43. 跟踪我们正在做的事
  44. 现在 逐行阅读代码 我们一起开始
  45. 第一行 我看到了一个变量的声明
  46. 所以 继续并写下变量名 weekday
  47. 初始化为5
  48. 所以在 weekday 下边写下值5
  49. 这代表着变量 weekday 当前储存为5
  50. 好了 这是第一行 我移动到下一行
  51. 有一个名为 weekend 的变量写下它
  52. 变量值为9
  53. 好了 看起来很好
  54. 移动到下一行变量 optimalHours 的声明和初始化
  55. 所以我会做同样的事情
  56. 我不打算写下值7*8
  57. 实际上 我会计算出来
  58. 因为那是储存在 optimalHours 里的
  59. 用心算 为56
  60. 这里 我们有了另一个声明
  61. 我们有了一个叫 actualHours 的变量 所以写出来
  62. 它等于 weekday 的值
  63. 这是 weekday 的当前值
  64. 它不是 weekday 的过去值或将来值
  65. 现在 我们跟踪 weekday 的当前值到这里
  66. 我只能看这里 它的值为5
  67. 我真的应该想想这个 5
  68. 继续 在这里写下5
  69. 移动到下一行
  70. 所以现在再次改变 actualHours 的值 让它等于
  71. 当前的 actualHours 的值加 2倍的 weekend 的值
  72. 看这里 当前的 actualHours 的值为5
  73. 当前的 weekend 的值为9
  74. 现在这有一个等式
  75. 做加法之前先做乘法
  76. 9*2=18 然后再加5
  77. 18加5是23
  78. 所以 现在 actualHours 的值为23
  79. 我必须要做的是划掉 actualHours 之前的值
  80. 写下 actualHours 的新值
  81. 所以就这样做了
  82. 移动到下一行
  83. 有一个 solution 那是一个变量声明
  84. 它被设置等于一些东西 但是
  85. 首先我先写下这个单词 solution
  86. solution 等于 optimalHours 减 actualHours
  87. 我们看这边 optimalHours 的值为56 actualHours 的值为23
  88. 现在使用计算器是没有关系的
  89. 我之前正好这样做了 我知道56减去23是33
  90. 移动到下一行
  91. 最后一行是 display(solution)
  92. 所以看这边可以知道 solution 的值为33
  93. 它将显示数字33
  94. 所以 那是我或你或任何人
  95. 都可以计算出这个程序的结果
  96. 但是真正的问题是 它是否做了对的事
  97. 在这里会不会有逻辑错误
  98. 或是否有平日睡5个小时和周末睡9个小时的人
  99. 在一周的最后可能有33个小时的睡眠时间差
  100. 我想要知道你的想法
  101. 好吧 快速滑动笔记 现在你已经创建这个 Practice Set 2 应用
  102. 所以我只是要告诉你怎样把代码放到 Practice Set 2 应用里
  103. 如果你想要测试一下这段代码
  104. 我建议首先是手动模拟
  105. 它将给你正在做的事的一个更好的理解
  106. 但是它也可以把代码加入到 Android Studio 里
  107. 测试一下它
  108. 所以我的建议是你复制粘贴问题的代码到 onCreate 方法里
  109. 代码将在讲师注释里提供
  110. 那是你在这里 MainActivity 里看到的第一个方法
  111. 好了 只是要很清楚 这里是你 onCreate 方法修改之前的样子
  112. 然后你可以粘贴代码 就像我所做的一样
  113. 好了 你需要做的另一件事是复制粘贴代码
  114. 它将使下面的这一行代码有效
  115. 这段代码 我也会把它加入到讲师注释里
  116. 你要做的最后一件事是到你的 XML 文件
  117. 确保你的文本视图的 ID 为 Id/display_text_view
  118. 这应该完全匹配在这里所显示的
  119. 只要这两点匹配了 当你运行这段代码时
  120. 你会得到屏幕上的输出结果
  121. 这可能有一点不清楚 但是它显示的是33
  122. 所有的这一切 然后我会试着去手动模拟
  123. 并未获得一些帮助让它能在手机上运行
  124. 继续 试着确认这个程序是否和预期一样