import java.util.Scanner;
public class ArrayReduce{
public static void main(String[]args){
/*要求:有一个数组 {1, 2, 3, 4, 5}, 可以将该数组进行缩减,提示用户是否继续缩减,每次缩减最后那个元素。当只剩下最后一个元素,提示,不能再缩减。
思路:1.建个新数组,长度为arr.length-1
2.遍历arr赋值给arrNew
3.把arrNew赋给arr
4.判断元素个数是不是等于1,提示不能缩减
*/
Scanner myScanner = new Scanner(System.in);
int arr[] = {1,2,3,4,5};
do{
int[] arrNew = new int[arr.length - 1];
//第一版为length,思路为原长度为5,缩减一个不就是4吗,所以直接写<5,后来没跑起来搜别人代码看到这个不一样,就想起来数组计数从0开始
for(int i =0;i<arr.length-1;i++){
arrNew[i]=arr[i];
}
arr = arrNew;
System.out.println("====arr 删减后元素情况====");
for(int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
System.out.println("请问你是否还要缩减y/n");
char key = myScanner.next().charAt(0);//这里初版结尾写的是直接抄过来的int,后面编译报错想起来了
if( key == 'n') { //如果输入 n ,就结束
break;
}else{//初版数组能否缩减的判断是写在前面的,跑的时候明显有问题,后来就改了
if(arr.length==1){
System.out.println("数组arr不能在缩减了");
break;//初版没写break,导致继续运行报错,后来break位置写的不对,最终改好了
}
}
}
while(true);
System.out.println("你退出了缩减");//初版写在了方法外,搜了下报错改好了
}
}
10-30
500
07-11
1590
04-21
01-16
769
10-26
1045