数组添加(练习)

 要求:实现动态的给数组添加元素效果,给数组扩容

原始数组使用静态分配int[] arr = {1,2,3};

增加数组元素4,直接放在arr的最后 = {1,2,3,4}

用户可以通过如下方法继续添加,y/n y继续添加否则反之。

文字描述

/*原数组:    int[] arr = {1,2,3};
     * 定义一个新的数组 int[] arrNew = new int[arr.length + 1];
     * 把arr的元素赋给arrNew,再把4赋给arrNew[arrNew.length - 1];
     * 再把arrNew赋给arr(引用传递) 
     * 创建一个Scanner对象接收用户输入
     * 因为不确定用户什么时候退出用do-while + break;来控制
     */

流程图如下

代码展示

    int[] arr = {1,2,3};
    int[] arrNew = new int[arr.length + 1];
    for(int i = 0; i < arr.length; i++){
        arrNew[i] = arr[i];
        
    }
    arrNew[arrNew.length - 1] = 4;
    arr = arrNew;
    System.out.println("======arr的数组元素如下==");
    for(int i = 0; i < arr.length; i++){
        System.out.print(arr[i] + "\tz");
    }

代码结果:

 优化代码

在原有代码基础上,用do-while循环包裹(原数组要不在do-while循环里面),从键盘输入要添加的元素,把固定的4替换为从键盘输入要添加的元素,do-while的判断条件为true,一直循环这样可以保证每次最少可以添加一个元素,询问是否要继续添加 ,从键盘输入y或n,y或n,用if判断==n,为真退出循环,为假继续循环。

代码优化如下

    int[] arr = {1,2,3};
    do{
    int[] arrNew = new int[arr.length + 1];
    for(int i = 0; i < arr.length; i++){
        arrNew[i] = arr[i];
        
    }
    System.out.println("请输入要补充的元素:");
    int add = myScanner.nextInt();
    arrNew[arrNew.length - 1] = add;
    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 arrnum = myScanner.next().charAt(0);
    if(arrnum == 'n'){
        break;
    }
    }while(true);
    System.out.println("你退出了添加...");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值