嘿伙计们刚接触java,我遇到过这个问题 好的,我在这里得到了一些我无法理解的东西
这里我有这个课程:
class FailSoftArray {
private int a[]; // reference to array
private int errval;
public int length;
public FailSoftArray(int size, int errv) {
a = new int[size];
errval = errv;
length = size;
}
public int get(int index) {
if(indexOK(index)) return a[index];
return errval;
}
public boolean put(int index, int val) {
if(indexOK(index)) {
a[index] = val;
return true;
}
return false;
}
private boolean indexOK(int index) {
if(index >= 0 & index < length) return true;
return false;
}
}
indexOK(index)
是什么意思?它做了什么?
答案 0 :(得分:3)
这是一种确定它将在数组中获取的索引是否有效的方法。
通常,如果将小于零或大于或等于数组长度的值用作索引,则会导致错误,抛出IndexOutOfBoundsException
,因为数组是从{{ 1}}到0
。
该方法通过确保索引在使用前始终有效来避免可能的结果,并通过比较索引来查看它是length - 1
,然后比较>= 0
,然后{ {1}}确保两者都为真(如果两个条件都为真,则可以将其用作数组的索引而不会引发异常。)
答案 1 :(得分:2)
调用indexOK时,程序运行以下方法,索引为参数:
private boolean indexOK(int index) {
if(index >= 0 & index < length) return true;
return false;
}
}
indexOK返回一个布尔值,因此结果为true或false。结果何时为真?
if(index >= 0 & index < length) return true;
return false;
如果参数大于或等于零且参数小于length,则结果为true。否则,结果是错误的。
indexOK的目的是检查值是否是数组的适当索引。否定索引无效,索引等于或超过其引用的数组的长度。所以检查
index >= 0
确定索引是否为负数,并检查
index < length
确定索引是否等于或超过它引用的数组的长度。
答案 2 :(得分:-2)
让我以一种更容易理解的方式重写方法:
private boolean indexOK(int index) {
if(index >= 0 & index < length) {
return true;
}
return false;
}
当index的值至少为0且小于length时,该方法将返回true。您可以使用不带大括号的if语句,但它只会使用以下行作为&#39;内部块&#39;。这是一个相当糟糕的做法,因为它有点不清楚。此外,它可能很容易导致不必要的错误和错误,因为在“内部块”中添加了行。没有在它们周围添加花括号并不常见。在我的拙见中,1行(或2个括号)更多的代码并不是那么多,而且应该总是添加它们。