关于数组的返回问题

关于数组的返回问题

package dataManagement;
 
import java.io.InputStream;
import java.util.Scanner;
 
public class Demo {
    static Scanner sc = new Scanner(System.in); 
    //输出操作方法
    public void Output(){                                     
        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 int[] insertData(){
        int[] a=new int[10];
        for(int x=0;x<a.length-1;x++){
            System.out.println("请输入第"+(x+1)+"个数据");
            a[x]=sc.nextInt();
        }
        System.out.println("数组元素为:");
        for(int y=0;y<a.length-1;y++){
            System.out.print(a[y]+"  ");
        }
        return a;
    }
    //显示所有数据方法
    public void showData(int[] a,int length){
        System.out.println("数组元素为:");
        for(int x=0;0<=length-1;x++){
            System.out.println(a[0]+"  ");
        }
    }
    //主方法
    public static void main(String[] args){
        Demo Dian = new Demo();
        Dian.Output();
        while(true){
            int shu = sc.nextInt(); 
        switch(shu){
            case 1:{
                Dian.insertData();
                System.out.println();
                Dian.Output();
                break;
              }
            case 2:{
                int[] n;
                n=Dian.insertData();
                Dian.showData(n, 10);
              }
         }
      }
   }
}

http://img1.sycdn.imooc.com/climg//59686c8200015b6305540633.jpg

为什么我在插入数据完后,再输入2进行显示所有数据,显示的是方法insertData()中的输出内容,而不是insertData()方法中返回的数组进行操作?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

在循环外定义一个数组int[] a,然后case 1后面写上a=Dian.insertData();这样case 2后面就不用再调用insertData方法了,直接调用showData方法,参数是a就行了。另外,对象的名字Dian要满足变量命名规则,所以不能首字母大写,改成dian。祝学习愉快!

  • 枫o 提问者 #1
    谢谢老师的回复!
    2017-07-15 21:16:49
qq_七花八落_0 2017-07-14 16:34:46

根据你的代码,方法insertData()是先执行对数组a的循环的数据插入操作,最后才输出数组中的元素,并返回数组a。若你希望直接查看输出数组中的元素,应该直接调用showData()方法。

希望能够为你提供到帮助!

  • 提问者 枫o #1
    我是想输出showData()方法中的数组a的元素,而不输出这个方法中的语句。
    2017-07-14 19:52:29
  • qq_七花八落_0 回复 提问者 枫o #2
    若要达到你的问题所需的效果,我想你应该需要设置一个数组int[] a,用于接受方法insertData()的返回值。而这个数组int[] a 应该对case1、case2都有效。也就是说,这个数组int[] a 首先用于case1中的insertData()方法,即int[] a = Dian.insertData(); 然后在case2中,直接将数组int[] a作为参数输入到方法showData()中,便可达到效果。 希望对你有所帮助~
    2017-07-14 23:47:27
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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