public class Elements {
boolean[] array1 = {false,false,false};
int count = 0;
void set(boolean[] arr, int x){
arr[x] = true;
count++;
System.out.println(count);
}
void func(){
if(array1[0] && (
array1[++count - 2] || array1 [count - 1]))
count++;
System.out.println("count = " + count);
}
public static void main(String[] args){
Elements EObject1 = new Elements();
EObject1.set(EObject1.array1, 2);
EObject1.set(EObject1.array1, 2);
EObject1.set(EObject1.array1, 2);
EObject1.func();
}
}
EObject1.set(EObject1.array1, 2);输出1
EObject1.set(EObject1.array1, 2);输出2
EObject1.set(EObject1.array1, 2);输出3
这三句结束后,array1变成了{false,false,true},count = 3
调用EObject1.func();由于array1[0]为false
array1[0] && (array1[++count - 2] || array1[count - 1])为false不进入if语句
count仍然是3
输出"count = 3"
main是开始启动运行。
其中第一行是实例化对象elements
第2、3、4、5行就是运行elements中的具体方法。
public static void main(String[] args){
Elements EObject1 = new Elements(); // 初始化
EObject1.set(EObject1.array1, 2); // 调用一次set函数,输出count值;打印1
EObject1.set(EObject1.array1, 2); // 调用一次set函数,输出count值;打印2
EObject1.set(EObject1.array1, 2); // 调用一次set函数,输出count值;打印3
EObject1.func(); // 调用func函数,在函数内部if判断array1[0]为false,所以都不执行。直接打印: count = 3
}