Java 如何在另一个方法中使用一个方法中的数组?
我发现在另一种方法中使用数组形式存在问题 在第一种方法中,我从用户处获取输入并将数据保存到两个数组中 在第二种方法中,我必须显示来自数组的这些信息Java 如何在另一个方法中使用一个方法中的数组?,java,arrays,Java,Arrays,我发现在另一种方法中使用数组形式存在问题 在第一种方法中,我从用户处获取输入并将数据保存到两个数组中 在第二种方法中,我必须显示来自数组的这些信息 import java.util.Scanner; public class MarkCalculator { public static void main(String[] args) { // TODO Auto-generated method stub computeMark();
import java.util.Scanner;
public class MarkCalculator {
public static void main(String[] args) {
// TODO Auto-generated method stub
computeMark();
computeResult();
}
public static void computeMark ()
{
Scanner exam = new Scanner (System.in);
Scanner coursework = new Scanner (System.in);
int num = 12;
int[] exam_grade = new int[num];
int[] coursework_grade = new int[num];
for (int i=0+1; i<3; i++){
System.out.printf(i+". Modelue"+" Enter grade of exam:");
exam_grade[i]=exam.nextInt();
System.out.printf(i+". Modelue"+" Enter grade of coursework:");
coursework_grade[i]=coursework.nextInt();
}
System.out.println();
System.out.println();
System.out.println("Your grades are: ");
}
public static void computeResult (int[] coursework_grade, int[] exam_grade)
{
for (int i = 0+1; i<3; i++) {
System.out.println(i+". Module: "+ "Exam: "+exam_grade[i]+" Coursework: "+coursework_grade[i]);
}
}
}
import java.util.Scanner;
公共类标记计算器{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
computeMark();
计算机结果();
}
公共静态void computeMark()
{
扫描仪检查=新扫描仪(System.in);
扫描器课程=新扫描器(System.in);
int num=12;
int[]考试成绩=新的int[num];
int[]课程作业\ U等级=新int[num];
对于(int i=0+1;i将对方法的调用添加到以下内容之后:
System.out.println("Your grades are: ");
computeResult(coursework_grade,exam_grade);
这就是一切
computeResult(coursework_grade,exam_grade);
可以像对待基元类型一样,将数组或任何对象传递给方法。
但请记住,在传递对象时,如果对象的状态在被调用的方法中发生了更改,则该对象将反映在对象本身中,并且该对象的所有引用都将包含受影响的对象。将数组设为全局数组。将其置于公共静态void main(字符串[]args)之外
并且它将是全局的。您可以使用以下两种方法访问阵列:
使数组成为全局数组
在主类中声明数组,并在单个方法中传递它们
在主类中声明数组并在单个方法中传递的代码:
import java.util.Scanner;
public class MarkCalculator {
public static void main(String[] args) {
int[] exam_grade = new int[12];
int[] coursework_grade = new int[12];
computeMark(coursework_grade,exam_grade);
computeResult(coursework_grade,exam_grade);
}
public static void computeMark (int[] coursework_grade, int[] exam_grade)
{
Scanner input = new Scanner (System.in);
for (int i=0+1; i<3; i++){
System.out.printf(i+". Modelue"+" Enter grade of exam:");
exam_grade[i]=input.nextInt();
System.out.printf(i+". Modelue"+" Enter grade of coursework:");
coursework_grade[i]=input.nextInt();
}
System.out.println();
System.out.println();
System.out.println("Your grades are: ");
}
public static void computeResult (int[] coursework_grade, int[] exam_grade)
{
for (int i = 0+1; i<3; i++) {
System.out.println(i+". Module: "+ "Exam: "+exam_grade[i]+" Coursework: "+coursework_grade[i]);
}
}
}
import java.util.Scanner;
公共类标记计算器{
公共静态void main(字符串[]args){
int[]考试成绩=新的int[12];
int[]课程作业\大学成绩=新int[12];
计算机标记(课程成绩、考试成绩);
计算机成绩(课程成绩、考试成绩);
}
公共静态无效计算标记(int[]课程成绩,int[]考试成绩)
{
扫描仪输入=新扫描仪(System.in);
对于(int i=0+1;i将两个数组都设置为全局数组。这样,您就不需要在所有函数中传递它们。如何使它们成为全局数组?感谢在主函数之外声明它们。这样,任何函数都可以访问它们。并且您不需要两个扫描仪-考试和课程作业。由于您只使用一个流,因此只能对该流使用一个扫描仪(system.in)。
import java.util.Scanner;
public class MarkCalculator {
static int[] exam_grade = new int[12];
static int[] coursework_grade = new int[12];
public static void main(String[] args) {
computeMark();
computeResult();
}
public static void computeMark ()
{
Scanner input = new Scanner (System.in);
for (int i=0+1; i<3; i++){
System.out.printf(i+". Modelue"+" Enter grade of exam:");
exam_grade[i]=input.nextInt();
System.out.printf(i+". Modelue"+" Enter grade of coursework:");
coursework_grade[i]=input.nextInt();
}
System.out.println();
System.out.println();
System.out.println("Your grades are: ");
}
public static void computeResult ()
{
for (int i = 0+1; i<3; i++) {
System.out.println(i+". Module: "+ "Exam: "+exam_grade[i]+" Coursework: "+coursework_grade[i]);
}
}
}