Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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 - Fatal编程技术网

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]);
        }
      }
    }