为什么我的程序运行没反应
package 管理程序;
import java.util.Scanner;
public class aha {
private static aha aa;
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 int[] insertDate() {
int[] a=new int[10];
Scanner sc=new Scanner(System.in);
for(int i=0;i<9;i++) {
System.out.println("请输入第"+(i+1)+"个数据:");
a[i]=sc.nextInt();
}
return a;
}
public void showDate(int[] a) {
for(int i=0;i<(a.length-1);i++) {
System.out.println(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;i>=n;i--) {
a[i]=a[i-1];
}
}
public void divThree(int[] a) {
for(int i=0;i<a.length;i++) {
if(a[i]%3==0)
System.out.println(a[i]+"");
}
System.out.println("可以被3整除");
}
public static void main(String[] args) {
int[] a=new int[10];
aha.aa=new aha();
Scanner sc=new Scanner(System.in);
boolean flag=true;
while(flag);{
aa.notice();
int n=sc.nextInt();
switch(n) {
case 1:aa.insertDate();
break;
case 2:aa.showDate(a);
break;
case 3:aa.insertAtArray(a, n, n);
break;
case 4:aa.divThree(a);
break;
case 0:
System.out.println("运行结束退出");
flag=false;
break;
}
}
}
}
正在回答
程序有如下问题:
1、建议包名命、变量命名遵守Java开发规范,Java的包名都有小写单词组成。比如: com.imooc.upload
2、insertDate()方法中没有判断输入的数据不能为0
3、showDate()方法增加一个参数,判断条件改成小于方法给定的这个参数值,因为需求里提到了两种输出数组元素的情况,插入数据前和插入数据后。
4、insertAtArray()循环结束还需要a[k]=n,执行插入数据
5、divThree()当没有能被3整除的元素时要给出错误提示。
6、在调用insertDate()时需要定义一个数组接收插入后的数据,显示数据时用的就是这个数组
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星