使用原汁原味的 Java 语言:非 Java 原生程序员的语言流畅性
2010-02-24 00:00:00 来源:WEB开发网核心提示: 但这几乎是惟一的异常,这种风格的最后一种连锁反应就是 Java 程序员通常每行仅声明一个变量,使用原汁原味的 Java 语言:非 Java 原生程序员的语言流畅性(6),例如,他们初始化变量的方法如下:inti=3;intj=8;intk=9;通常不会写出下面这样的代码:inti=3,j=8,k
但这几乎是惟一的异常。
这种风格的最后一种连锁反应就是 Java 程序员通常每行仅声明一个变量。例如,他们初始化变量的方法如下:
int i = 3;
int j = 8;
int k = 9;
通常不会写出下面这样的代码:
int i=3, j=8, k=9;
这条语句在语法上是正确的,但除非在一种特殊的例外情况下,专业 Java 程序员是不会这样做的,后文将介绍这种特殊情况。
老式的 C 程序员甚至可能编写一个四行的代码:
int i, j, k;
i = 3;
j = 8;
k = 9;
Java 风格将声明与初始化结合在一起,因而实际上要更简练一些,只需要三行代码。
将变量置入循环
常见的一种特殊情况就是在循环外部声明变量。例如,考虑清单 6 中简单的 for 循环,其作用是计算斐波那契数列的前 20 项:
清单 6. C 程序员喜欢在循环外部声明变量
int high = 1;
int low = 1;
int tmp;
int i;
for (i = 1; i < 20; i++) {
System.out.println(high);
tmp = high;
high = high+ low;
low = tmp;
}
所有这四个变量都是在循环外声明的,尽管它们仅在循环内部使用,但作用域不止于此。这容易导致 bug,变量可能会在其目标作用域之外被重用。对于使用常用名的变量来说更是这样,例如 i 和 tmp。某次使用的值可能会残留下来,并以无法预计的方式干扰后续的代码。
第一项改进(C 语言的现代版本也支持这项改进)是将 i 循环变量的声明移到循环之内,如清单 7 所示:
更多精彩
赞助商链接