Java 意外的结果-可以请一些人指出错误吗

Java 意外的结果-可以请一些人指出错误吗,java,arrays,Java,Arrays,在花了数小时尝试不同的东西之后,我无法找出我的代码的错误,这是一个简单的程序:` public class AssignGrades { private int ntotal=0; private int []y; //constructor to initialize class instances AssignGrades(int t) { ntotal = t; //y = num1; } AssignGrades( int []num1) { y=nu

在花了数小时尝试不同的东西之后,我无法找出我的代码的错误,这是一个简单的程序:`

public class AssignGrades {

private int ntotal=0;
private int []y;

//constructor to initialize class instances
AssignGrades(int t)
{
    ntotal = t;
    //y = num1;

}   
AssignGrades( int []num1)
{
    y=num1;
    for (int i=0;i<y.length;i++)
    y[i] = num1[i];

}   
//method to sort grades int []num1

void setGrades()
{
    int [] y = new int[ntotal];
    for (int i=0;i<y.length;i++)

    {

        //assign grades 
        if 
            (y[i]<80){
        System.out.println("grade is A" +y[i]);}
            else if (y[i]<70)
            System.out.println("grade is B" +y[i]);
           else if (y[i]<60)
            System.out.println("grade is c" +y[i]);
           else
             System.out.println("FAIL" +y[i]);
      } 
          }

//show student grades - to print array[] values 
void  showGrades()
{
    for (int u: y)
    System.out.println(u);
}
问题:现在在输出“A”和“0”中->问题出在哪里,看起来数组没有初始化,所有值都显示为零:但是当我单独打印它们时,它们被初始化了


请让我知道,如果需要更多的澄清。谢谢

您有一个名为y的局部变量和一个名为y的类变量。这似乎就是问题所在。你用的是本地的y,但我想你是想用y类的

好的,你的代码有很多问题。这是固定版本

public class AssignGrades {

    private int[] y;

    public AssignGrades(int[] num1) {
        y = num1;
    }

    // method to set grades
    void setGrades() {
        for (int i = 0; i < y.length; i++)
        {
            // assign grades

            if (y[i] < 50)
                System.out.println("FAIL" + y[i]);
            else if (y[i] < 60)
                System.out.println("grade is C" + y[i]);
            else if (y[i] < 70)
                System.out.println("grade is B" + y[i]);
            else if (y[i] < 80) {
                System.out.println("grade is A" + y[i]);
            }

        }
    }

    // method to show student grades
    void showGrades() {
        for (int u : y){
            System.out.println(u);
        }
    }

}




import java.util.Scanner;

public class AssignGradesDemo {

    public static void main(String[] args) {
        int t = 0;
        System.out.println("enter no of students");

        Scanner input = new Scanner(System.in);
        t = input.nextInt();

        int[] num1 = new int[t];
        System.out.println("enter grades");

        for (int i = 0; i < num1.length; i++) {
            num1[i] = input.nextInt();
        }
        input.close();

        AssignGrades ag = new AssignGrades(num1);

        ag.setGrades();
        ag.showGrades();
    }

}
公共类{
私有int[]y;
公共交通等级(整数[]num1){
y=num1;
}
//设置等级的方法
无效等级(){
对于(int i=0;i
您有一个名为y的局部变量和一个名为y的类变量。这似乎就是问题所在。你用的是本地的y,但我想你是想用y类的

好的,你的代码有很多问题。这是固定版本

public class AssignGrades {

    private int[] y;

    public AssignGrades(int[] num1) {
        y = num1;
    }

    // method to set grades
    void setGrades() {
        for (int i = 0; i < y.length; i++)
        {
            // assign grades

            if (y[i] < 50)
                System.out.println("FAIL" + y[i]);
            else if (y[i] < 60)
                System.out.println("grade is C" + y[i]);
            else if (y[i] < 70)
                System.out.println("grade is B" + y[i]);
            else if (y[i] < 80) {
                System.out.println("grade is A" + y[i]);
            }

        }
    }

    // method to show student grades
    void showGrades() {
        for (int u : y){
            System.out.println(u);
        }
    }

}




import java.util.Scanner;

public class AssignGradesDemo {

    public static void main(String[] args) {
        int t = 0;
        System.out.println("enter no of students");

        Scanner input = new Scanner(System.in);
        t = input.nextInt();

        int[] num1 = new int[t];
        System.out.println("enter grades");

        for (int i = 0; i < num1.length; i++) {
            num1[i] = input.nextInt();
        }
        input.close();

        AssignGrades ag = new AssignGrades(num1);

        ag.setGrades();
        ag.showGrades();
    }

}
公共类{
私有int[]y;
公共交通等级(整数[]num1){
y=num1;
}
//设置等级的方法
无效等级(){
对于(int i=0;i
您有一个名为y的局部变量和一个名为y的类变量。这似乎就是问题所在。你用的是本地的y,但我想你是想用y类的

好的,你的代码有很多问题。这是固定版本

public class AssignGrades {

    private int[] y;

    public AssignGrades(int[] num1) {
        y = num1;
    }

    // method to set grades
    void setGrades() {
        for (int i = 0; i < y.length; i++)
        {
            // assign grades

            if (y[i] < 50)
                System.out.println("FAIL" + y[i]);
            else if (y[i] < 60)
                System.out.println("grade is C" + y[i]);
            else if (y[i] < 70)
                System.out.println("grade is B" + y[i]);
            else if (y[i] < 80) {
                System.out.println("grade is A" + y[i]);
            }

        }
    }

    // method to show student grades
    void showGrades() {
        for (int u : y){
            System.out.println(u);
        }
    }

}




import java.util.Scanner;

public class AssignGradesDemo {

    public static void main(String[] args) {
        int t = 0;
        System.out.println("enter no of students");

        Scanner input = new Scanner(System.in);
        t = input.nextInt();

        int[] num1 = new int[t];
        System.out.println("enter grades");

        for (int i = 0; i < num1.length; i++) {
            num1[i] = input.nextInt();
        }
        input.close();

        AssignGrades ag = new AssignGrades(num1);

        ag.setGrades();
        ag.showGrades();
    }

}
公共类{
私有int[]y;
公共交通等级(整数[]num1){
y=num1;
}
//设置等级的方法
无效等级(){
对于(int i=0;i
您有一个名为y的局部变量和一个名为y的类变量。这似乎就是问题所在。你用的是本地的y,但我想你是想用y类的

好的,你的代码有很多问题。这是固定版本

public class AssignGrades {

    private int[] y;

    public AssignGrades(int[] num1) {
        y = num1;
    }

    // method to set grades
    void setGrades() {
        for (int i = 0; i < y.length; i++)
        {
            // assign grades

            if (y[i] < 50)
                System.out.println("FAIL" + y[i]);
            else if (y[i] < 60)
                System.out.println("grade is C" + y[i]);
            else if (y[i] < 70)
                System.out.println("grade is B" + y[i]);
            else if (y[i] < 80) {
                System.out.println("grade is A" + y[i]);
            }

        }
    }

    // method to show student grades
    void showGrades() {
        for (int u : y){
            System.out.println(u);
        }
    }

}




import java.util.Scanner;

public class AssignGradesDemo {

    public static void main(String[] args) {
        int t = 0;
        System.out.println("enter no of students");

        Scanner input = new Scanner(System.in);
        t = input.nextInt();

        int[] num1 = new int[t];
        System.out.println("enter grades");

        for (int i = 0; i < num1.length; i++) {
            num1[i] = input.nextInt();
        }
        input.close();

        AssignGrades ag = new AssignGrades(num1);

        ag.setGrades();
        ag.showGrades();
    }

}
公共类{
私有int[]y;
公共交通等级(整数[]num1){
y=num1;
}
//设置等级的方法
无效等级(){
对于(int i=0;i