请问老师我程序代码中关于数组显示的问题
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 星