第5章编码
5.1 有人说程序编好后能上机运行就可以了,为什么还要讲究风格和可读性呢?你觉得对吗?为什么?
对于学生的练习题和作业题,程序编好后能上机运行,一般认为任务就完成了。但对于实际开发的项目来说,任务并没有结束。编码人员编写完程序后,要对自己的程序进行单元测试,测试人员要进行集成测试和系统测试,提交用户使用后,还需要对软件进行持续的维护修改工作。在软件开发和维护过程中,都需要阅读程序。道理很简单,如果需要对某段程序进行修改,首先要读懂,阅读程序是软件开发和维护过程中的一个重要组成部分,而且读程序的时间比写程序的时间还要多。所以,程序的风格和可读性很重要,具有良好的程序风格和可读性的程序,有助于对程序的正确理解,可以大大减少阅读理解程序的时间,从而提高维护工作的效率。
5.2 一般情况下,程序的效率和清晰性相比哪一个更重要?
在计算机发展的早期,由于CPU效率低,内存小,程序在运行时容易出现运行时间太长或内存溢出问题。因此,人们在编写程序时,很注重程序的时间效率和空间效率,而不太注重程序的清晰性。
随着计算机硬件性能的飞速发展以及软件规模和复杂性的急剧增加,这种情况已经发生了根本的转变,程序的清晰性越来越受到重视,程序的清晰性不好会给测试、维护修改带来困难,这对于规模庞大和复杂的软件尤其明显。
软件运行的效率主要取决于软件的体系结构及算法,编码阶段虽然也有机会提高效率,但效果并不明显。对于效率没有特殊严格要求的系统来说,要将程序的清晰性放在第一位,在不影响清晰性的情况下,去改进效率。
5.3 程序中的注释是否越多越好?
注释的原则是有助于对程序的阅读理解,注释不宜太多也不能太少,太少不利于代码理解,太多则会对阅读产生干扰,因此只在必要的地方才加注释,而且注释要准确、易懂、尽可能简洁。
5.4 如何提高表达式的可读性?
注意运算符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级。这是为了防止阅读程序时产生误解。
5.5 将下面的表达式改写成更容易理解的形式。
!((year % 4 ==0 && year % 100 != 0) || year % 400 ==0)
改写后的表达式如下:
(year % 4 !=0 || year % 100 == 0) && year % 400 !=0
5.6 在一行内只写一条语句,并且采取适当的移行格式,使程序的逻辑和功能变得更加明确。许多程序设计语言允许在一行内写多个语句。但这种方式会使程序可读性变差。下面是一段排序程序,请对其编码风格进行改进,以增加其可读性。
for (i=1; i<=n-1; i++) for (j=1; j<=n-i; j++) if (a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp;}
改进后的代码如下:
for (i=1; i<=n-1; i++)
for (j=1; j<=n-i; j++)
if (a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
5.7 请对下面代码的布局进行改进,使其符合规范其更容易理解。
for (i=1; i<=n-1; i++){
t=i;
for (j=i+1; j<=n; j++)