首页 > 解决方案 > 编写 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() 时传递的任何参数都会移到该方法的参数行中?

标签: javafunctionarguments

解决方案


这部分

public static int absolute(int n) { … }

说我们有一个方法,叫做'absolute',它接受一个整数参数,并返回一个整数值。

在完成实际计算的“absolute”主体内,整数参数由名称“n”引用。

所有这些只是一个过程的定义。它不仅仅通过定义来执行。

这个

    absolute(number)

是对“绝对”的“调用”——我们正在请求执行该方法。我们提供一个值(来自“number”)用作形式参数的值,“absolute”称为“n”。

您可以将其视为在输入“absolute”之前立即为“n”分配了表达式“number”的值。

在“绝对”完成后,返回值将用于您的打印调用——这是另一种以类似方式进行的方法执行。


推荐阅读