展开全部
首先呢,你的问题在62616964757a686964616fe78988e69d8331333363356561于对数组进行第二次赋值的时候,它的容量已经变为n+2了。而你还是利用n次进行循环赋值,这样n+1个值就无法赋上,就会默认为0了(而不是你说的替换)。
要解决这个问题,只需要定义一个记录已经Y次输入的变量,然后让n进行动态变化。详细代码如下。import java.util.Scanner;
public class UseScanner {
public static void main(String[] args) {
int times= 0;//定义一个记录Y次赋值的变量
Scanner sj = new Scanner(System.in);
System.out.println("请输入第一组数据个数 :");
int n =sj.nextInt();
int array1[]=new int [n];
System.out.println("请输入第一组数据 :");
for(int i=0;i
array1[i]=sj.nextInt();
}
System.out.println("是否继续输入 :");
String flg = sj.next();
while(flg.equals("Y")){
System.out.println("请输入下一个数据 :");
int num= sj.nextInt();
int array2[] = new int [array1.length+1];
for(int i=0;i
array2[i]=array1[i];
}
array2[array1.length]=num;
for(int i=0;i
System.out.print(array2[i]+" ");
}
array1=array2;
System.out.println("是否继续输入 :");
flg = sj.next();
times++; //如果是Y时候给它自身++1
}
for(int i=0;i
System.out.print(array1[i]+" ");
}
}
}
运行结果如下: