数组缩减问题:数组选择是否缩减,元素个数为1提示不能继续缩减

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("你退出了缩减");//初版写在了方法外,搜了下报错改好了
		}
		
	}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值