{
int arr1[]={5,6,7,56,12,36,78};
Scanner myscanner=new Scanner(System.in);
do {
int a[]=new int[arr1.length+1];
int x=myscanner.nextInt();
for(int i=0;iarr1=a;
for(int j=0;jprint(a[j]+" ");
}
char key=myscanner.next().charAt(0);
if(key=='n')
{
break;}
}while(true);
}
> 我希望这个数组的空间扩大一个,如果不输入你,就一直扩容。为什么得不到理想结果,也没有报错
基于Monster 组和GPT的调写:
更新后的代码:
int[] arr1 = {5, 6, 7, 56, 12, 36, 78};
Scanner myscanner = new Scanner(System.in);
do {
int x = 0;
try {
System.out.println("请输入一个数字:");
x = myscanner.nextInt();
} catch (InputMismatchException e) {
System.out.println("输入不是数字,请重新输入。");
myscanner.next(); // 清除输入缓存区
continue;
}
int[] a = new int[arr1.length + 1];
for (int i = 0; i < arr1.length; i++) {
a[i] = arr1[i];
}
a[arr1.length] = x;
arr1 = a;
for (int j = 0; j < arr1.length; j++) {
System.out.print(arr1[j] + " ");
}
System.out.println("是否继续添加元素?(y/n)");
char key = myscanner.next().charAt(0);
if (key == 'n') {
break;
}
} while (true);
这里不就会数组越界了么
数组是固定长度的
你想扩容,用arraylist呀
按理说第一次执行到a[i]=arr1[i];的时候,i就已经越界了才对