我刚刚为我的编程语言课做了一个测验,遇到了这个问题:
假设按名称调用,以下代码的结果是什么:
public class MyClass {
static int i = 1;
static float f(int x, int i){
int s = 0;
for(i = 0; i <3; i++){
s = s + x;
}
return s;
}
static void g(){
int[] a= {10,30,50};
int[] b = {20,40,60};
System.out.println(f(i, i));
i = 1;
System.out.println(f(a[i],i));
i = 1;
System.out.println(f((a[i] *b[i]), i));
}
public static void main(String[]args){
g();
}
}
上面的代码和我的测验完全一样,但当时是在纸上,所以我手动进行了计算并得到了结果3.0, 90.0, and 3600.0
。在自己的电脑上运行代码后,结果和我计算的一样。
但是,问题是多项选择,最接近的可用选项是3.0, 90.0, and 4400.0
. 这使我假设“按名称调用”一词改变了该函数f
的在线调用方式System.out.println(f((a[i] *b[i]), i));
有人可以解释一下 4400.0 在 Java 或 C++ 中是如何实现的吗?