Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将用户输入从主方法调用到另一个方法_Java_Arrays_Input_Methods_Return Value - Fatal编程技术网

Java 将用户输入从主方法调用到另一个方法

Java 将用户输入从主方法调用到另一个方法,java,arrays,input,methods,return-value,Java,Arrays,Input,Methods,Return Value,你好,我是Java新手,需要一些帮助。如果我把一些措辞弄错了,我表示歉意。我正在提示用户在我的main方法中输入2个数字,我需要将这两个数字返回到一个int[]方法中,并且已经设置了2个参数。所以我有一些类似的东西 public static int[] getnum (int a , int b) { int [] z = {a,b} return z; } public static void main(String[] args) { Scanner scanner = new

你好,我是Java新手,需要一些帮助。如果我把一些措辞弄错了,我表示歉意。我正在提示用户在我的main方法中输入2个数字,我需要将这两个数字返回到一个int[]方法中,并且已经设置了2个参数。所以我有一些类似的东西

public static int[] getnum (int a , int b) {

int [] z = {a,b}

return z;

}

public static void main(String[] args) {

Scanner scanner = new scanner (System.in);

System.out.println("Please enter a number.");

a = scanner.netInt();

System.out.println("Please enter another number.");

b = scanner.netInt();

getnum(a,b); // I don't know how to pass a and b into my getnum 

}
我试过做getnum(a,b);但我不知道如何将其恢复到我的getnum方法。我觉得它很简单,但我不能把我的大脑围绕它,我已经在这一点上了一段时间


所以我已经有了在getnum中必须使用的参数,我需要在我的主方法中有a和b,在getnum方法中为x和y填充,这样我就可以返回z。非常感谢您的指导或建议。我希望我能解释清楚。

参数是正确的步骤。在getnum(这并不意味着什么)方法中,将x和y当作局部变量。然后,在main方法中,在调用该方法时给x和y一个值。 以下是您的代码的外观:

import java.util.Scanner;
公共类文件名{
公共静态int[]getnum(int x,int y){
int[]z={x,y};
返回z;
}
公共静态void main(字符串[]args){
Scanner Scanner=new Scanner(System.in);//Java区分大小写!
System.out.println(“请输入一个数字”);
int a=scanner.netInt();
System.out.println(“请输入另一个数字”);
int b=scanner.netInt();
getnum(a,b);//使用参数调用方法。
}
}

如果您还需要什么,请告诉我。

首先,在编码时,给您的方法和变量命名一些比只给
getnum
a
b
z
更有意义的名称。此答案的其余部分将基于如下所示的
getIntArray()
方法:

public static int[] getIntArray(int element1, int element2) {
    int[] intArray = { element1, element2 };
    return intArray;
}
此方法与您的方法完全相同,其唯一目的是获取传递给该方法的两个提供的参数,并将它们放入整数(int)数组中,然后返回该数组:

对于您的用例,
getIntArray()
方法将整数值(用户已在控制台窗口中输入)存储到类型为int的整数数组中,以便以后在代码中使用。在用户成功提供所需的数值数据并将其放入整数变量
a
b
后,将调用此方法,如下所示:

int[] myArray = getIntArray(a, b);
在调用
getIntArray()
方法之后,您可能希望通过在调用之后添加此代码行来证明数组中的值是作为索引元素的:

`System.out.println(Arrays.toString(myArray)); 
或者通过使用循环机制,可能类似以下标准
for
循环:

for (int i = 0; i < myArray.length; i++) {
    System.out.print(myArray[i]);
}
由于
getIntArray()
方法包含必需的参数,因此必须提供参数(值)以满足这些特定方法参数的要求,否则将发生异常(错误)


为了好玩:

假设您要处理的不仅仅是两个整数值。假设您希望用户提供10个整数值(或任意数量的整数),然后调用
getIntArray()
方法返回整数数组中的所有值:

int myArray = getIntArray(10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
System.out.println(Arrays.toString(myArray));
控制台将显示:

[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
指示提供的每个值确实作为索引元素包含在名为
myArray
的数组中

你问这怎么可能?
getIntArray()
方法的参数已替换为所谓的参数。参数类型后的三个句点(..称为省略号)表示参数可以作为数组或以逗号分隔的参数序列传递。Varargs只能在最后一个参数位置中使用作为方法参数。请参见下面的新方法:

public static int[] getIntArray(int... elementValues) {
    return elementValues;
}

这个方法仍然和你的方法一样,只是有一个例外,你可以传递任意多的参数,只要每个参数用逗号隔开。实际上,您根本不需要传递任何参数,但是在这个特定的用例中,您将返回一个空(null)数组。我建议您继续阅读Java教程。具体来说,您应该找到一个解释如何使用方法的工具。我们说您“调用”了一个方法来使用它。所以我建议用谷歌搜索“java教程方法调用”之类的东西来查找更多信息。你把这个放在代码里的什么地方?你这样做的时候发生了什么?你有什么错误吗?如果是这样,那是什么?如果没有,输出是什么?您希望它是什么?如果您在尝试时需要帮助,请使用您的代码显示。您如何调用
println()
方法或
netInt()
方法?谢谢!我在打印array.to字符串时看到了输入。我试图调用整个array.toString(getnum);从getnum返回,然后尝试返回getnum,但它希望我重新初始化它。我错过了哪一步?谢谢你的帮助!我认为我的问题措辞不恰当,所以我编辑了代码。我试图使它简洁,并没有把我所有的代码都放在这里,但是在我从用户那里得到主方法中a和b的输入值之后,我如何将这些值传递回我的getnum方法?因此第一个输入是int a,第二个输入是int b。稍后,我们调用
getnum
方法,并在参数中放置a和b(用户输入)。这有道理吗?是的,我忘了回答!谢谢你的帮助!这是非常有帮助的tysm!!!!!
public static int[] getIntArray(int... elementValues) {
    return elementValues;
}