插入不了数据怎么回事,老师
package MathDemo;
import java.util.Scanner;
public class Admin {
//定义显示提示信息方法
public void notice() {
System.out.println("******************************");
System.out.println(" 1--插入数据(不得超过5个数)");
System.out.println(" 2--显示所有数据 ");
System.out.println(" 3--在指定位置处插入数据 ");
System.out.println(" 4--查询能被3整除的数据 ");
System.out.println(" 0--退出 ");
System.out.println("******************************");
}
// 定义插入数据方法
public int[] insertDate(int[] n) {
Scanner sc = new Scanner(System.in);
for (int i = 0; i < n.length; i++) {
System.out.println("请输入第" + (i + 1) + "个数据");
n[i] = sc.nextInt();
if (n[i] == 0) {
System.out.println("输入的数据不能为0! 请重新输入!");
i--;// 重新从第一个数开始赋值
continue;
}
}
System.out.print("你输入的元素为:");
for (int n1 : n) {
System.out.print(n1 + " ");
}
return n;
}
// 定义显示所有数据方法
public void showDate(int[] a, int length) {
System.out.println("数据库中所有数据如下:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
}
//定义在指定位置处插入数据方法
public void insertAtArray(int[]a,int n,int k) {
System.out.println("请输入要插入的数:");
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
System.out.println("请输入要插入数的位置:");
k=sc.nextInt();
for(int i=a.length-1;i>=k;i--) {
a[i]=a[i-1];
}
n=a[k];
System.out.println("插入后数据整体为:");
for(int a1:a) {
System.out.print(a1+" ");
}
}
//定义能被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 static void main(String[] args) {
Admin ad = new Admin();
int[] n1 = new int[5];// 给数组初始化长度
while (true) {
System.out.println();
Scanner sc = new Scanner(System.in);
ad.notice();
System.out.println("请输入对应的数字进行操作:");
int sc1 = sc.nextInt();
switch (sc1) {
case 1:
ad.insertDate(n1);
break;
case 2:
ad.showDate(n1, n1.length);
break;
case 3:
ad.insertAtArray(n1, 1, 1);
break;
case 4:
ad.divThree(n1);
break;
case 0:
System.out.println("程序结束!");
System.exit(0);
break;
default:System.out.println("输入错误,请重新输入!!");
}
}
}
}
正在回答 回答被采纳积分+1
同学你好,这里在初始化成绩数组方法时,要注意方法的返回值是已经初始化好的数组,所以在主方法中通过调用insertDate方法的返回值,将返回值赋给n1!
这里的insertAtArray方法中的n1是没有初始化的数组,所以在case3中调用是数组为空,所以不能插入哦!修改建议如下:
这样就能够插入数据了哦!这里同学可以参考一下这个问答,都是没有方法的返回值赋值给主方法中的方法变量哦!
https://class.imooc.com/course/qadetail/107339
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星