代码中的这部分是什么意思? (Java)
What does this part in code mean? (Java)
大家好,我是 java 的新手,我遇到了这个问题
好的,我在这里得到了一些我无法理解的东西
我有这个 class:
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)
是什么意思?它有什么作用?
这是一种判断数组中要获取的索引是否有效的方法。
通常情况下,如果使用小于零或大于或等于数组长度的值作为索引,则会导致错误,抛出 IndexOutOfBoundsException
,因为数组的索引来自0
到 length - 1
.
该方法通过确保索引在使用之前始终有效来避免可能的结果,它通过比较索引以查看它是否为 >= 0
,然后比较 < length
,然后&
确保 both 都为真(如果两个条件都为真,它可以用作数组的索引而不会抛出异常。)
当您调用 indexOK 时,您的程序将运行以下方法,并将索引作为参数:
private boolean indexOK(int index) {
if(index >= 0 & index < length) return true;
return false;
}
}
indexOK returns 一个布尔值,所以结果不是真就是假。什么时候结果为真?
if(index >= 0 & index < length) return true;
return false;
如果参数大于或等于零且参数小于长度,则结果为真。否则,结果为假。
indexOK 的目的是检查一个值是否是数组的适当索引。负索引是无效的,等于或超过它引用的数组长度的索引也是如此。所以检查
index >= 0
判断索引是否为负数,校验
index < length
确定索引是否等于或超过它引用的数组的长度。
让我用更容易理解的方式重写方法:
private boolean indexOK(int index) {
if(index >= 0 & index < length) {
return true;
}
return false;
}
当 index 的值至少为 0 且同时小于 length 时,该方法将 return 为真。您可以使用不带大括号的 if 语句,但它只会使用以下行作为 'inner block'。这是一个相当糟糕的做法,因为它有点不清楚。此外,它很容易成为不需要的错误和错误的原因,因为在 'inner block' 中添加行而不在它们周围添加大括号的情况并不少见。以我的拙见,1 行(或 2 个括号)代码并没有那么多,应该始终添加它们。
大家好,我是 java 的新手,我遇到了这个问题 好的,我在这里得到了一些我无法理解的东西
我有这个 class:
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)
是什么意思?它有什么作用?
这是一种判断数组中要获取的索引是否有效的方法。
通常情况下,如果使用小于零或大于或等于数组长度的值作为索引,则会导致错误,抛出 IndexOutOfBoundsException
,因为数组的索引来自0
到 length - 1
.
该方法通过确保索引在使用之前始终有效来避免可能的结果,它通过比较索引以查看它是否为 >= 0
,然后比较 < length
,然后&
确保 both 都为真(如果两个条件都为真,它可以用作数组的索引而不会抛出异常。)
当您调用 indexOK 时,您的程序将运行以下方法,并将索引作为参数:
private boolean indexOK(int index) {
if(index >= 0 & index < length) return true;
return false;
}
}
indexOK returns 一个布尔值,所以结果不是真就是假。什么时候结果为真?
if(index >= 0 & index < length) return true;
return false;
如果参数大于或等于零且参数小于长度,则结果为真。否则,结果为假。
indexOK 的目的是检查一个值是否是数组的适当索引。负索引是无效的,等于或超过它引用的数组长度的索引也是如此。所以检查
index >= 0
判断索引是否为负数,校验
index < length
确定索引是否等于或超过它引用的数组的长度。
让我用更容易理解的方式重写方法:
private boolean indexOK(int index) {
if(index >= 0 & index < length) {
return true;
}
return false;
}
当 index 的值至少为 0 且同时小于 length 时,该方法将 return 为真。您可以使用不带大括号的 if 语句,但它只会使用以下行作为 'inner block'。这是一个相当糟糕的做法,因为它有点不清楚。此外,它很容易成为不需要的错误和错误的原因,因为在 'inner block' 中添加行而不在它们周围添加大括号的情况并不少见。以我的拙见,1 行(或 2 个括号)代码并没有那么多,应该始终添加它们。