原理:使用一个新的数组arrNew用于存放静态数组中所有元素除去最后一位的元素,再让原数组arr指向新数组arrNew的存储区域(arr=arrNew;),此时arr原存储区域作废。再使用do-while,break语句,循环声明下一次的arrNew数组长度=arr数组长度-1,直到arr数组元素仅剩余1。
要求:
//1.有一个数组{1,2,3,4,5},可以将数组进行缩减 //2.提示用户是否继续缩减,每次缩减最后一个元素 //3.当只剩下最后一个元素时:提示不能缩减import java.util.Scanner; public class ArrayReduce { public static void main(String[] args) { int[] arr={1,2,3,4,5}; Scanner scanner=new Scanner(System.in); int choose; //choose表示用户选择 do{ int[] arrNew=new int[arr.length-1]; //arrNew的长度比arr小1 for(int i=0;i<arrNew.length;i++){ //存放arr数组除最后一位的所有数据 arrNew[i]=arr[i]; } arr=arrNew; //让arr指向arrNew的存储空间 for(int i=0;i< arr.length;i++) System.out.print(arr[i]+"\t"); if(arr.length>1){ //数组长度>1 System.out.println("是否继续减缩(y/n):"); choose=scanner.next().charAt(0); if(choose=='n') break; } else { System.out.println("数组仅剩下一位,不能减缩"); break; } }while (true); } }
本人目前仅是java新手小白,欢迎各位大佬指出不足