运行出现了问题但是看不出来,请大神指导一下
package com.Imooc.method;
import java.util.Scanner;
public class DataManage {
//插入数据
public int[] insertData() {
int []a1=new int[10];
for (int i=0;i<a1.length-1;i++) {
Scanner s1=new Scanner(System.in);
System.out.println("请输入第"+(i+1)+"个元素:");
int n=s1.nextInt();
a1[i]=n;
if(a1[i]==0&i<9) {
System.out.println("输入的数据不能为0!");break;
}
System.out.println("数组的元素为:");
for (int j=0;j<a1.length;j++) {
System.out.print(a1[j]+" ");
}
}
System.out.println();
return a1;
}
//显示所有数据
public void showData(int[] a, int length) {
System.out.println("数组的元素为:");
for (int i=0;i<=a.length;i++) {
System.out.print(a[i]+" ");
}
System.out.println();
}
//指定位置处插入数据
public void insertAtArray(int []a,int n,int k) {
System.out.println("请输入要插入的数据:");
Scanner s2=new Scanner (System.in);
n=s2.nextInt();
System.out.println("请选择要插入的位置:");
Scanner s3=new Scanner(System.in);
k=s3.nextInt();
for(int i = a.length-1;i>=k;i--){
a[i]=a[i-1];
}
a[k]=n;
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
//查询能被三整除的数据
public void divThree(int []a) {
}
//提示信息的方法
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) {
DataManage d0=new DataManage();
DataManage d1=new DataManage();
DataManage d2=new DataManage();
DataManage d3=new DataManage();
DataManage d4=new DataManage();
d0.notice();
Scanner s=new Scanner(System.in);
int n=s.nextInt();
int[]b=d1.insertData();
while(true&n!=0)
switch (n) {
case 1:
d1.insertData(); d0.notice();n=s.nextInt();break;
case 2:
d2.showData(b, 10);d0.notice();n=s.nextInt();break;
case 3:
d3.insertAtArray(b, n, n);d0.notice();n=s.nextInt();break;
case 4:
default:
System.out.println("请输入0-4的整数!超出操作范围");d0.notice();n=s.nextInt();break;
}
System.out.println("退出!");
}
}
正在回答
1、主方法中,类的对象定义一个即可。
2、定义数组b时,不能直接收insertData()方法插入数据,只有输入1时,才插入数据。应该定义为int[] b = new int[10]; 在casse 1后,用b接收插入的数据。
3、在插入数据的方法中,显示数组元素的代码应该在循环的外边,建议调用显示所有数据的方法来展示数组元素。另外判断a1[i]==0后,建议将i减1,调用continue结束当前循环,继续下次循环,而不是直接退出来。
4、显示所有数据的方法中,for()循环应该是i<a.length而不是<=,否则会出现数组下标越界异常。
5、查询能被3整除的方法没有完成。可按如下思路写:定义一个字符串str用于存放能被3整除的数据,设置boolean变量的值为false。使用for循环遍历数组元素,在循环中使用if语句判断是否能被3整除,如果满足if语句的条件,则设置boolean变量的值为true,并将能被3整除的数据用字符串拼接起来,如str=str+b[i] +” ”; 然后在循环外判断如果boolean为true则输出str的值,否则输出:数组中没有数据能被3整除。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
public class DataManage { //插入数据 public int[] insertData() { int []a1=new int[10]; for (int i=0;i<a1.length-1;i++) { Scanner s1=new Scanner(System.in); System.out.println("请输入第"+(i+1)+"个元素:"); int n=s1.nextInt(); a1[i]=n; if(a1[i]==0&i<9) { i-=1; System.out.println("输入的数据不能为0!");continue; } } System.out.println("数组的元素为:"); for (int j=0;j<a1.length;j++) { System.out.print(a1[j]+" "); } System.out.println(); return a1; } //显示所有数据 public void showData(int[] a, int length) { System.out.println("数组的元素为:"); for (int i=0;i<a.length;i++) { System.out.print(a[i]+" "); } System.out.println(); } //指定位置处插入数据 public void insertAtArray(int []a,int n,int k) { System.out.println("请输入要插入的数据:"); Scanner s2=new Scanner (System.in); n=s2.nextInt(); System.out.println("请选择要插入的位置:(1-9的整数)"); Scanner s3=new Scanner(System.in); k=s3.nextInt(); for(int i = a.length-1;i>=k;i--){ a[i]=a[i-1]; } a[k]=n; for(int i=0;i<a.length;i++){ System.out.print(a[i]+" "); } System.out.println(); } //查询能被三整除的数据 public void divThree(int []a) { } //提示信息的方法 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) { DataManage dm=new DataManage(); dm.notice(); Scanner s=new Scanner(System.in); int n=s.nextInt(); int[]b=new int[10]; while(true&n!=0) switch (n) { case 1: b=dm.insertData(); dm.insertData(); dm.notice();n=s.nextInt();break; case 2: dm.showData(b, 10);dm.notice();n=s.nextInt();break; case 3: dm.insertAtArray(b, n, n);dm.notice();n=s.nextInt();break; case 4: default: System.out.println("请输入0-4的整数!超出操作范围");dm.notice();n=s.nextInt();break; } System.out.println("退出!"); } }
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星