我写了一个方法来打印我的结果。如果调用参数,我是否可以修改方法以打印不同的消息让我们说' result3 ' ?
在下面的这种情况下,我无法在方法中访问变量 result2 。 Eclipse说"' result2'无法解析为变量"。
double result2 = addValues(s1,s2,s3);
printAnswer(result2);
}
static void printAnswer (double answer) {
System.out.println("The answer is:" + " " + answer);
}
我是否需要修改' printAnswer'一个非静态方法?
答案 0 :(得分:5)
该方法不知道作为参数传递给方法的变量的名称。此外,可能涉及多个变量
printAnswer(result2+result3);
或根本没有变量
printAnswer(42.53);
提出问题“传递给我的方法的变量的名称是什么?”不可能回答。
您的方法只能对answer
参数的值起作用,而不能对用于调用方法的参数表达式起作用。
如果你想区分除了值之外的东西,让你的调用者为你传递一个额外的参数,如下所示:
static void printAnswer (double answer, String name) {
...
}
答案 1 :(得分:0)
你不能,也不应该根据变量名来调节输出,只能使用基于变量VALUES的条件
像这样:static void printAnswer (double answer) {
if(answer>0){
System.out.println("The answer is positive: " + answer);
}else{
System.out.println("The answer is negative or cero: " + answer);
}
}
编辑:
如果你想写sum方法所以它需要一个未知数量的值来求和,那么你就像这样:
public static double addValues(Double... values){
double sum=0;
for(Double value:values){
sum+=value.doubleValue();
}
return sum;
}
通过这种方式,您可以像使用任何数组一样了解访问这些参数的参数数量:
values.length
并使用任意数量的参数调用
addValues(1.5,1.6,5.9,2.3);