请问老师我程序代码中关于数组显示的问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | 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积分~
来为老师/同学的回答评分吧