3.9 整合

至此,你应该对 Java 有足够的了解,能够编写解决日常问题的程序了。你知道如何导入 Java 库中的类、如何创建 Scanner 对象、如何从键盘获取输入、如何用 printf 设置输出的格式以及如何执行整数除法和求模运算。现在让我们结合这些知识,编写一个完整的程序:

  1. import java.util.Scanner;
  2. /**
  3. * 将厘米数转换为英尺数和英寸数
  4. */
  5. public class Convert {
  6. public static void main(String[] args) {
  7. double cm;
  8. int feet, inches, remainder;
  9. final double CM_PER_INCH = 2.54;
  10. final int IN_PER_FOOT = 12;
  11. Scanner in = new Scanner(System.in);
  12. // 提示用户输入值并读取这个值
  13. System.out.print("Exactly how many cm? ");
  14. cm = in.nextDouble();
  15. // 转换并输出结果
  16. inches = (int) (cm / CM_PER_INCH);
  17. feet = inches / IN_PER_FOOT;
  18. remainder = inches % IN_PER_FOOT;
  19. System.out.printf("%.2f cm = %d ft, %d in\n",
  20. cm, feet, remainder);
  21. }
  22. }

虽然没有要求,但所有的变量和常量都是在 main 方法的开头声明的。这种做法让人更容易获悉这些变量和常量的类型以及算法涉及了哪些数据。

为提高可读性,可用一个空行将算法的主要步骤分隔开,且每个主要步骤都以注释打头。这个程序还包含文档注释(/**),我们将在下一章中更详细地介绍。

很多算法(包括程序 Convert)都结合使用了除法和求模运算。在程序 Convert 中,这两种运算使用的除数相同,都是 IN_PER_FOOT

常见的编程风格是将过长(超过 80 个字符)的语句分成多行,以便阅读时不用水平滚动。