2.12 练习

本章的示例代码位于仓库 ThinkJavaCode 的目录 ch02 中,有关如何下载这个仓库,请参阅前言中的“使用示例代码”一节。做以下的练习前,建议你先编译并运行本章的示例。

如果你还没有阅读 A.2 节,那么现在正是阅读的好时机。该节介绍了 DrJava 的 Interactions 窗格,它提供了极佳的途径,让你无需编写完整的类定义就能开发并测试简短的代码片段。

练习2-1

如果你将本书用作教材的话,可能会很喜欢这个练习。找个同伴一起来玩 Stump the Chump 的游戏吧。

先编写一个能够通过编译并正确运行的程序。一个人在程序中添加一个错误,另一个人不能偷看,然后尝试找出并修复这个错误。在不编译程序的情况下找出错误得两分,求助于编译器找出错误得 1 分,找不出错误对手得 1 分。

练习2-2

这个练习旨在:用字符串拼接显示不同类型(intString)的值;以每次添加几条语句的方式循序渐进地练习程序开发。

(1) 新建一个程序,将其命名为 Date.java。输入或复制类似于程序 Hello World 中的代码,并确保程序能够通过编译并运行。

(2) 仿照 2.4 节中的示例,编写一个创建变量 daydatemonthyear 的程序。变量 day 用于存储星期几(如星期五),date 用于存储日期(如 13 号)。这些变量应声明为何种类型呢?将表示当前日期的值赋给这些变量。

(3) 显示(打印)每个变量的值,且每个变量要独占一行。这是一个中间步骤,有助于确认到目前为止一切正确。编译并运行这个程序,然后再接着往下做。

(4) 修改程序,使其以美国标准格式显示日期,如 Thursday, July 16, 2015

(5) 修改程序,使其以欧洲格式显示日期。最终的输出应类似于以下这样:

  1. American format:
  2. Thursday, July 16, 2015
  3. European format:
  4. Thursday 16 July 2015

练习2-3

这个练习旨在:使用一些算术运算符;考虑用多个值表示复合实体(如时间)。

(1) 新建一个程序,将其命名为 Time.java。从现在开始,我们将不再提醒你先编写一个可运行的小程序,但你应该这样做。

(2) 仿照 2.4 节中的示例,创建变量 hourminutesecond,并将大致表示当前时间的值赋给这些变量。请使用 24 小时制,即如果当前时间是下午两点,就将变量 hour 的值设置为 14。

(3) 让程序计算并显示从午夜开始过去了多少秒。

(4) 计算并显示当天还余下多少秒。

(5) 计算并显示当天已逝去时间的百分比。如果用整数计算百分比,可能会出现问题,因此请考虑使用浮点数。

(6) 根据当前时间修改变量 hourminutesecond 的值,再编写代码来计算从你开始做这个练习算起,已过去了多少时间。

提示:你可能想在计算期间用额外的变量来存储值。只用于计算而不显示的变量被称为“中间变量”或“临时变量”。