我正在攻读考试并接受旧考试。
其中一个类包含两个数组,每个数组应该包含20个元素。
在遍历数组时,使用array.length
是否更好,或者使用数组中的元素数量更好。
例如,我们正在浏览一个数组,并希望找到最大的教室。我写了一个for循环,在编写它时,使用array.length
还是20?代码如下:
public Clsrm biggestClsrm() {
Clsrm classroom = new Clsrm(0, 0 , true);
for (int i = 0; i < _clsrms.length; i++) {// or should it be for (int i = 0; i < 20 ; i++)
if (_clsrms[i].isBigger(classroom)) {
classroom = new Clsrm(_clsrms[i]);
}
}
}
假设条件是应该的那样是否安全?
答案 0 :(得分:3)
使用_clsrms.length
。请将此错误代码视为示例:
class BadLoop {
Clsrm _clsrms = new Clsrm[20];
public Clsrm biggestClsrm() {
for (int i = 0; i < 20; i++) {
...
}
}
}
数字20
在代码中重复两次 - 一次在_clsrms
声明中,一次在循环中。
如果某人将声明中的20
更改为30
,那么biggestClsrm()
会在确定最大10
课堂时忽略它们。另一方面,如果声明从20
更改为10
,则biggestClsrm()
将停止工作,因为它会崩溃。请注意,使用length
而不是固定数字可以避免这两个问题。
基本上,代码的重复部分变为维护责任,使用length
很容易避免。