如何使用动态变化的简单数组创建多维数组?

时间:2016-08-25 13:23:19

标签: java arrays if-statement for-loop

for(i=0; i<=2; i++){
    if(i=0){
        System.Out.println("Input x: ");
        int x=input.nextInt();
        if(x==1){
            char[] a={'A','B','C'};
        }
        else if(x=2){
            char[] a={'D','E','F'};
        }
        else{
           char[] a={'G','H','I'};
        }
    } 

a []的值将因for循环和&amp;而改变3次。输入x决定的值。我的问题是,如何将每个循环中的[]值存储到另一个变量中,并使用这些值创建另一个多维数组?请有人帮我这个。提前致谢。

3 个答案:

答案 0 :(得分:1)

很难确定你究竟在寻找什么,但这可能会给你一些想法。至少,语法应该是正确的:

char[][] array = new char[3][];
for (int i = 0; i < array.length; i++) {
    System.out.println("Input x: ");
    int x = input.nextInt();
    if (x == 1) {
        array[i] = new char[] {'A', 'B', 'C'};
    } else if (x == 2) {
        array[i] = new char[] {'D', 'E', 'F'};
    } else {
        array[i] = new char[] {'G', 'H', 'I'};
    }
}

注意事项:

  1. 案件很重要。它是System.out而非System.Out
  2. 使用=进行赋值,使用==来测试原始类型的相等性。 (但一般不是其他类型!)
  3. 正确的缩进和一致使用空格对于可读性非常重要。尽量遵守风格指南。

答案 1 :(得分:0)

一些代码可以帮助您:

char[][] matrix = new char[2][4];
for (int i=0; i < 2; i++) {
  // now create an array for the columns
  matrix[i]= new char[4];
  // now you could do
  for (int j=0; j < 4; j++) {
    matrix[i][j] = ...
  }
  // or
  char[] row = { '1', '2', '3', '4' };
  matrix[i] = row;
}

这个想法是你先说出你有多少行和列。 然后迭代第一个维度,并且可以在每次迭代期间设置第二个维度的值。

答案 2 :(得分:0)

我宁愿根据需求而不是非暗示性代码来解决您的问题,但这里有:

final int total=2;
char[][] a=new char[total][];
for (int i=0;i<total;i++){
     System.Out.println("Input x: ");
     int x=input.nextInt();
     switch(x){
         case 1:
             a[i]=new char[]{'A','B','C'};
         break;
         //Other cases...
     }
}