在java,ArrayList的学生管理系统中遇到了点问题请各忙看一下代码问题所在

首先这是类

package MangerSystem;

public class Students {
    private String code;
    private String name;
    private String age;
    private String address;

    public Students(){}

    public Students(String code,String name,String age,String address){
        this.code = code;
        this.name = name;
        this.age  = age;
        this.address = address;
    }
    public void setCode(String code){
        this.code =code;
    } public void setName(String name){
        this.name =name;
    } public void setAge(String age){
        this.age =age;
    } public void setAddress(String address){
        this.address =address;
    }

    public String getCode(){
        return code;
    }public String getName(){
        return name;
    }public String getAge(){
        return age;
    }public String getAddress(){
        return address;
    }

}

然后是主入口,我每次用完添加方法时好像没有添加到主入口那里,然后导致调用查看方法时没有数据?

package MangerSystem;

import java.util.ArrayList;
import java.util.Scanner;

public class Manger {
    public static void main(String[] args) {
        while (true){

        Scanner sc = new Scanner(System.in);
        ArrayList<Students> array = new ArrayList<Students>();
        System.out.println("------学生管理系统------");
        System.out.println("请输入数字选择你要的选项");
        System.out.println("1.add studens");
        System.out.println("2.remove studens");
        System.out.println("3.check all studens");
        System.out.println("4.replace studens");
        System.out.println("5.stop");
        String a = sc.nextLine();
        switch(a){
            case "1":
                System.out.println("add studen");
                add(array);
                break;
            case "2":
                System.out.println("remove studen");
                break;

            case "3":
                System.out.println("check all studen");
                checkAll(array);
                break;

            case "4":
                System.out.println("replace studen");
                break;

            case "5":
                System.out.println("thanks for your useing");
                //return;
                System.exit(0);
        }
        }

    }

    public static void add(ArrayList<Students> array){
        Scanner sc = new Scanner(System.in);

        System.out.println("please enter the code");
        String code = sc.nextLine();

        System.out.println("please enter the name");
        String name = sc.nextLine();

        System.out.println("please enter the age");
        String age = sc.nextLine();

        System.out.println("please enter the address");
        String address = sc.nextLine();

        Students s = new Students();
        s.setCode(code);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);
        array.add(s);
        System.out.println("added successfully");
    }

    public static void checkAll(ArrayList<Students> array){
        System.out.println("学号  名字  年龄  地址");
        for (int a = 0;a<array.size();a++){
        Students s = array.get(a);
        System.out.println(s.getCode()+" "+s.getName()+"  "+s.getAge()+"old "+s.getAddress());
        }
    }
}

想了很久,还是没能解决。
感谢。

把11行的 放到 while的上面

        ArrayList<Students> array = new ArrayList<Students>();
while(true){
 .....
}

要不然每次循环就新生array,新的array里不包含之前的添加的数据,所有你看不到添加的数据