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决定的值。我的问题是,如何将每个循环中的[]值存储到另一个变量中,并使用这些值创建另一个多维数组?请有人帮我这个。提前致谢。
答案 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'};
}
}
注意事项:
System.out
而非System.Out
。=
进行赋值,使用==
来测试原始类型的相等性。 (但一般不是其他类型!)答案 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...
}
}