请问老师在运行主方法的时候,输入1给数组赋值以后再输入2却都显示数组元素为0

请问老师在运行主方法的时候,输入1给数组赋值以后再输入2却都显示数组元素为0

package mooc;
import java.util.Scanner;
public class Work {
    //插入数据
    public int[] insertData(int[] arr) {
        Scanner sc=new Scanner(System.in);
        arr=new int[10];
        for(int i=0,j=1;i<(arr.length-1);i++,j++) {
            System.out.println("请输入第"+j+"个数据:");
            arr[i]=sc.nextInt();
            if(arr[i]==0) {
                System.out.println("不能输入0");
                continue;
            }
        }
        System.out.println("数组元素为:");
        for(int i=0;i<arr.length-1;i++) {
            System.out.print(arr[i]+"  ");
        }
        System.out.println();
        return arr;
    }
    //显示数据
    public void showData(int[] a,int length) {
        System.out.println("数组元素为:");
        for(int k=0;k<a.length;k++) {
            System.out.print(a[k]+"  ");
        }
        System.out.println();
    }
    //在指定位置处插入数据
    public void insertAtArray(int[] a) {
        System.out.print("请输入要插入的数据:");
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        System.out.print("请输入要插入的位置(范围0~9):");
        int k=sc.nextInt();
        for(int i=a.length-1;i>=k;i--) {
            a[i]=a[i-1];
        }
        a[k]=n;
    }
    //查询能被3整除的数据
    public void divThree(int[] a) {
        int[] arg;
        for(int i=0;i<a.length;i++) {
            if(a[i]%3==0) {
                System.out.println(a[i]+"  ");
            }
            else {
                System.out.println("没有能被3整除的数据");
            }
        }
    }
    //显示提示信息
    public void notice() {
        System.out.println("***********************************************");
        System.out.println("       1--插入数据");
        System.out.println("       2--显示所有数据");
        System.out.println("       3--在指定位置处插入数据");
        System.out.println("       4--查询能被3整除的数据");
        System.out.println("       0--退出");
        System.out.println("***********************************************");
        System.out.println("请输入对应数字进行操作");
    }
    public static void main(String[] args) {
        int[] arr=new int[10];
        while(true){
            Work ds=new Work();
            ds.notice();
            Scanner dc=new Scanner(System.in);
            int num=dc.nextInt();
        switch(num)
            {
            case 1:
                ds.insertData(arr);break;
            case 2:
                ds.showData(arr,arr.length);break;
            case 3:
                ds.insertAtArray(arr);break;
            case 4:
                ds.divThree(arr);break;
            case 0:
                System.out.println("退出程序");
                System.exit(0);break;
            default:
                System.out.println("输入错误,请重新输入");break;
        }
        }
    }

}

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

您好,已经将arr数组给了插入数据的方法,那么在插入数据时直接使用,并返回即可。不需要在插入数据时再次arr=new int[10];。祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师