如何将数组从main方法传递给另一个方法?我的参数有错误。我是否使用main的返回值?并且由于main的返回值是一个数组,main调用的参数是否应该有括号?这些括号之间应该有值吗?
public class arraysAndMethods {
public void printArray(double[] arr) {
int x = arraysAndMethods.main(double[i] arr);//error with paremeters
for (int i = 0; i < studGrades.lenght; i++)
System.out.print(studGrades[i] + " ");
}// end of printArray method
public static double[] main(String args[]){// double array
java.util.Scanner input = new java.util.Scanner(System.in); // input scanner
System.out.println("What is the size of the class?");
int n = input.nextInt();
double[] arr = new double[n];// declare and initialize array to have n many elements
for (int i = 0; i < arr.length;i++) {// input grades for each students
System.out.println("What is the grade of student #" + (i+1));
arr[i] = input.nextDouble();
} // end of for loop
return arr;
}// end of main method
}// end of class
答案 0 :(得分:1)
只需传递名称,而不是类型。
int x = arraysAndMethods.main(arr);
编辑: 除此之外,您的代码还会显示其他一些问题。
答案 1 :(得分:1)
这一切都没有多大意义。如果您希望将此作为Java程序的main
方法,那么这将无效,因为main
方法必须具有void
返回类型。无论如何,这里有语法错误:
int x = arraysAndMethods.main(double[i] arr);//error with paremeters
相反它应该是
int x = arraysAndMethods.main(arr);//error with paremeters
因为变量已经被声明。我不确定你试图用double[i]
做什么,但这种语法更像是一个声明,即
double[] someArrayName = new double[5];
答案 2 :(得分:0)
您的主要方法是程序开始执行的地方。换句话说,你应该从main中调用printArray(),而不是相反地调用
答案 3 :(得分:0)
我想我看到了混乱的地方。也许这会有所帮助
首先,我认为你应该理解一些关于Java的重要事项
您的主要方法是运行的第一种方法。
因此,让我们简要介绍一下如何在没有IDE的情况下创建Java程序。
首先,您在文本文件中编写代码,并在完成后将其重命名为arraysAndMethods.java。接下来,我们需要将您的代码放入一个可供计算机使用的表单中,首先使用以下命令行将其编译为字节码:
javac arraysAndMethods.java
编译完成后,您可以使用以下命令运行程序:
java arraysAndMethods
如果没有问题,您的程序将运行。
你说你想把变量东西传递给main方法吗?以下是从命令行执行此操作的方法:
java arraysAndMethods 45.6 38.2 5.5 105.3
查看主要方法,它需要以下参数:(String args[])
因此,在您的情况下,45.6 38.2 5.5 105.3
将作为字符串数组传递到main方法中。第一个条目为45.6
,后跟38.2
,然后是5.5
,最后是105.3
。
它在数组中看起来像这样:["45.6"],["38.2"],["5.5"],["105.3"]
但它们都是字符串而不是 双打。
所有这一切都是说如果你想将一些东西传递给你的main方法,你需要通过命令行来完成它,或者查看你的个人IDE(即Eclipse) ,Netbeans等)处理。
所以回顾一下:main方法中的参数是从控制台进来的,除非做出其他规范,在你的情况下,它返回一个double类型的数组。
我知道这很啰嗦,但请耐心等待,我差不多完成了
运行Java程序时(我在这里简化了一下),它进入main方法并执行它看到的第一行。当它完成后,它会进入下一行,依此类推,直到它到达main方法的末尾。然后程序完成。
所以一切都必须在main方法中完成。虽然您可以从main方法调用其他类和方法。
现在您已经有了解释,我将采取以下措施来修复您的代码:
public class arraysAndMethods {//Changed from arraysAndMethods to ArraysAndMethods because classes are always capitalized
public static void printArray(double[] arr) {//Added static so this could be used within the same class as the main method.
//int x = arraysAndMethods.main(double[i] arr); No need for this line
for (int i = 0; i < arr.length; i++)// Changed "studGrades.lenght" to arr.length
System.out.print(arr[i] + " ");//Changed "studGrades" to arr
}// end of printArray method
public static void main(String args[]){// Changed the return type to "void". No need to return the double array.
java.util.Scanner input = new java.util.Scanner(System.in); // input scanner
System.out.println("What is the size of the class?");
int n = input.nextInt();
double[] arr = new double[n];// declare and initialize array to have n many elements
for (int i = 0; i < arr.length;i++) {// input grades for each students
System.out.println("What is the grade of student #" + (i+1));
arr[i] = input.nextDouble();
} // end of for loop
printArray(arr);
//return arr; No need for this line
}// end of main method
}// end of class
请确保在准备就绪时标记最佳答案,并将您认为有帮助的任何答案或评论投票。不仅仅是这个问题,你是原始海报,还有其他问题主题。