请问老师我程序代码中关于数组显示的问题
package com.imooc; import java.util.Scanner; public class DateManage { //插入数据的方法 public int[] insertDate(int arr[]) { Scanner sc = new Scanner(System.in); //从键盘接收数据并存入数组 for (int i=0; i<arr.length-1;i++) { System.out.print("请输入第"+(i+1)+"个数据:"); arr[i] = sc.nextInt(); } //输出数组元素 System.out.print("数组元素为:"); for (int i=0; i<arr.length-1;i++) { System.out.print(arr[i] + " "); } System.out.println(""); return arr; } //显示所有数据的方法 public void show(int[] a,int length) { System.out.println("数组的元素为:"); for (int i=0;i<length;i++) { System.out.println(a[i] + " "); } } //在指定处插入数据的方法 public void insertAtArray(int[] a, int n, int k) { //k位置后数据向后移 for (int i= a.length-1;i>=k;i--) { a[i]=a[i-1]; } //k位置的元素值 a[k-1]=n; System.out.println(a); } // 查询能被3整除的数据的方法 public void divThree(int[] a){ System.out.println("数组中能被3整除的数为:"); for (int i=0;i<a.length;i++){ if (a[i]%3==0) { System.out.print(a[i]+" "); } } } // 显示提示信息的方法 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("*************************"); } public static void main(String[] args) { DateManage dm=new DateManage(); int[] arr=new int[10]; dm.notice(); boolean flag=true; //接收数据判断匹配操作序号 Scanner sc=new Scanner(System.in); while(flag){ System.out.println("请输入操作序号:"); int x=sc.nextInt(); if(x==0){ System.out.println("退出程序!"); break; } if(x>4){ System.out.println("输入有误!请输入正确的操作序号:"); } switch(x){ case 1: dm.insertDate(arr); dm.notice(); break; case 2: System.out.println("请输入显示的数组长度:"); int length=sc.nextInt(); dm.show(arr,length); dm.notice(); break; case 3: System.out.println("请输入要插入的数据:"); int n=sc.nextInt(); System.out.println("请输入要插入的位置:"); int k=sc.nextInt(); dm.insertAtArray(arr,n,k); dm.show(arr,8); dm.notice(); break; case 4: dm.divThree(arr); dm.notice(); break; } } } }
我的问题:关于数组显示的方法中,我分辨不出插入数据之前的数组和插入数据之后的数组,导致之后对于数组的操作,尤其是调用方法给数组传值或是进行键盘输入传值很难理解。
希望解决:1.我代码如何修改可以保障程序正常运行;
2.希望可以给出解决问题的思路。谢谢!
源自:Java方法
8-1 综合案例需求
0
收起
正在回答
2回答
你好!这个地方不是8,改成arr.length。祝学习愉快!
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星