为什么我的程序运行没反应

为什么我的程序运行没反应

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回答

程序有如下问题:

1、建议包名命、变量命名遵守Java开发规范,Java的包名都有小写单词组成。比如: com.imooc.upload

2、insertDate()方法中没有判断输入的数据不能为0

3、showDate()方法增加一个参数,判断条件改成小于方法给定的这个参数值,因为需求里提到了两种输出数组元素的情况,插入数据前和插入数据后。

4、insertAtArray()循环结束还需要a[k]=n,执行插入数据

5、divThree()当没有能被3整除的元素时要给出错误提示。

6、在调用insertDate()时需要定义一个数组接收插入后的数据,显示数据时用的就是这个数组

  • 慕娘1284479 提问者 #1
    第三点没看懂什么意思
    2018-06-05 10:17:45
  • 好帮手慕雪 回复 提问者 慕娘1284479 #2
    ”假设数组长度为10,要能完成在指定位置处插入数据前显示9个数据,在指定位置处插入数据后显示10个数据。提示:以最后一个元素是否为0作为判断标准。” for(int i=0;i<(a.length-1);i++) 你这样写永远都是输出9个数据,但需求是“插入数据后显示10个数据”
    2018-06-05 10:33:57
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师