java - 编写 Java 函数时对输入参数行感到困惑
问题描述
public class AbsoluteValue {
public static int absolute(int n) {
if ( n >= 0){
return n;
}else {
n = n * -1;
return n;
}
}
public static void main(String[] args) {
StdOut.println("Enter the integer that you want the absolute value for: ");
int number = StdIn.readInt();
StdOut.println("The absolute value of " + number + " is " + absolute(number));
}
}
你好,我只是学习写函数,我的老师解释得不好。该程序的目标是获取输入数字的绝对值,并且使用我拥有的“StdIn,StdOut”库可以正常工作。
我的困惑来自它到底是如何工作的。所以在主函数中,我要求输入一个整数,它读取该整数并将其存储到变量“数字”中。然后我的打印语句调用 absolute() 函数并传递 number 参数。我的困惑来自于这一切是如何被翻译的,以及 in 的论点是什么public static int absolute(int n)
意思。为什么我需要在那里传递“int n”?“n”变量是如何转换成我的“number”变量的?
我的猜测是,当我调用 absolute() 时传递的任何参数都会移到该方法的参数行中?
解决方案
这部分
public static int absolute(int n) { … }
说我们有一个方法,叫做'absolute',它接受一个整数参数,并返回一个整数值。
在完成实际计算的“absolute”主体内,整数参数由名称“n”引用。
所有这些只是一个过程的定义。它不仅仅通过定义来执行。
这个
absolute(number)
是对“绝对”的“调用”——我们正在请求执行该方法。我们提供一个值(来自“number”)用作形式参数的值,“absolute”称为“n”。
您可以将其视为在输入“absolute”之前立即为“n”分配了表达式“number”的值。
在“绝对”完成后,返回值将用于您的打印调用——这是另一种以类似方式进行的方法执行。