如何在我的数组中存储值?

Arc*_*h M 2 java arrays

我正在尝试创建一个程序,允许用户在输入数组的行和列,输入数组内的值以及输出数组之间进行选择.一切正常,直到我尝试输出数组,它总是输出0.如何正确打印值?

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    char ans='y';
    int column=0, row=0;
    do{
        char c = menu(sc);
        int array[][] = new int [row] [column];
        switch (Character.toLowerCase(c))
        {
            case 'a': System.out.print("Enter row size ");
                      row=sc.nextInt();
                      System.out.print("Enter column size ");
                      column=sc.nextInt();
                      System.out.print("Row and Column "+row+" "+column);
                      break;
            case 'b': for(int r=0;r<row;r++)
                      {
                          for(int col=0;col<column;col++)
                          {
                              System.out.print("Enter value for row "+r+" column "+col+": ");
                              array[r][col]=sc.nextInt();
                          }
                      }
                      break;
            case 'c': for(int r=0; r<array.length; r++) 
                      {
                          for(int col=0; col<array[r].length; col++) 
                          {
                              System.out.print(array[r][col] + " ");
                          }
                          System.out.println();
                      }
                      break;
        }
        System.out.println("");
    }while(ans=='y');
}
Run Code Online (Sandbox Code Playgroud)

Kep*_*pil 5

您正在重新创建每个循环的数组,丢弃您保存的任何值.你需要发表声明

int[][] array = new int[0][0];
Run Code Online (Sandbox Code Playgroud)

do {} while循环之前.然后,您可以创建一个用户在第一个中指定的大小的数组case:

...
column = sc.nextInt();
array = new int[row][column];
Run Code Online (Sandbox Code Playgroud)