是否有必要始终在函数
中初始化结果变量例如
Public class Calculator
result=addition(a,b);
Public static int addition(int a, int b)
int result;
result =a+b;
return result;
答案 0 :(得分:7)
您根本不需要结果变量。你需要确保执行的所有可能方式都可以到达函数的末尾(不仅仅抛出异常)意味着你得到一个return语句,并且每个return语句都有一个适当的表达式来评估,但是这并没有。 t意味着你需要一个单独的变量。您的示例可以写成:
public static int addition(int a, int b) {
return a + b;
}
如果你做使用变量,你需要确保它已经明确分配,然后才能从中读取,包括在return
语句中。例如,这不会起作用,因为result
没有明确分配:
public static int addition(int a, int b) {
int result;
if (a < b) {
result = a + b;
}
return result; // Invalid! result may not have a value
}
在可能的情况下,在声明点初始化变量通常是个好主意。因此,如果我编写此代码并想要一个result
变量,我就会:
public static int addition(int a, int b) {
int result = a + b;
return result;
}
现在,再次查看示例代码,在调用方法时,您已经使用了另一个变量:
result=addition(a,b);
不清楚该变量的声明位置(这是避免在问题中发布伪代码的一个原因)但它与result
中的addition
变量完全分开1}},它是 local 到addition
方法。这两个变量碰巧具有相同的名称,但它们之间没有相关性。例如,您可以轻松拥有:
int sum = addition(a, b);
或使用结果调用另一个方法,而不是将其分配给变量:
System.out.println(addition(a, b));
或者你可以完全忽略它:
addtion(a, b); // Valid, but pointless unless there are side-effects