我发现在另一种方法中使用数组形式一个方法的问题。
在第一种方法中,我从用户那里获取输入并将数据保存到两个数组中。
在第二种方法中,我必须从数组中显示这些信息。
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]);
}
}
}
问题是,我不知道如何将数据从数组传递给第二种方法。我找不到任何解决方案。有人可以帮我吗?
感谢。
答案 0 :(得分:1)
这就是全部。
computeResult(coursework_grade,exam_grade);
您可以像使用基本类型一样将数组或任何对象传递给方法。 但是请记住,如果在被调用方法中更改了对象的状态,则传递对象时,它会反映在对象本身中,并且该对象的所有引用都将包含受影响的对象。
答案 1 :(得分:0)
在以下方法之后添加对方法的调用:
System.out.println("Your grades are: ");
computeResult(coursework_grade,exam_grade);
答案 2 :(得分:0)
制作数组,全局。它们在public static void main(String[] args)
之外,它将是全球性的。
答案 3 :(得分:0)
您可以使用以下两种方法访问数组:
在主类中声明数组并将其传递到单个方法中的代码:
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;
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]);
}
}
}
建议: