在main()中返回数组

时间:2014-11-24 03:22:36

标签: java arrays return

我无法返回数组的值,我知道我错了,但我不知道怎么回事。请帮忙。

这些是说明:

  

说明:编写一个名为dogTypes()的方法,提示输入3   不同的狗类型,将类型存储在名为dogs的本地数组中,   并将数组返回到main()中的调用语句。一旦   main()获取数组,然后使用for循环打印数组   如下所示在单独的行上的内容,其中9代表a   数值,以便标签显示"狗类型1:"然后"狗类型2:   "等为从阵列中检索的每种狗类型。你可以使用   来自for循环的循环控制变量产生9值。保存   程序中的代码名为YourLastNameFirstInitialArraysV1.java。   狗类型9:XXXXXXXXXXXXXXX狗类型9:XXXXXXXXXXXXXXX

 import java.util.Scanner;

    public class BarrazaMArrayV2
    {//BEGIN BarrazaMLE52

      private static Scanner input = new Scanner(System.in);

      public static void main(String[] args)
      {
        String[] dog = dogType();

        System.out.printf("Dog Type 1: %S", dog[0]);

        System.out.printf("Dog Type 2: %S", dog[1]);

        System.out.printf("Dog Type 3: %S", dog[2]);


      }


       public static String[] dogType()

       {
         String[] dogType = new String[3];

         System.out.printf("Enter your dog type: ");
         dogType[0] = input.nextLine();

         System.out.printf("Enter your dog type: ");
         dogType[1] = input.nextLine();

         System.out.printf("Enter your dog type: ");
         dogType[2] = input.nextLine();

        return dogType[3];

       }
    }

6 个答案:

答案 0 :(得分:1)

您只返回数组的第3个索引以返回整个数组。 改变这个:

return dogType[3];

return dogType;

此外,您的数组没有第三个索引。如果您尝试访问第3个索引,则会获得ArrayIndexOutOfBoundsException

答案 1 :(得分:1)

你没有返回return dogType [3]。

您可以使用:

return dogType

答案 2 :(得分:1)

你以错误的方式返回数组。

return dogType [3];

它返回该索引处的元素,但不返回数组。

删除[3]

返回dogType;

答案 3 :(得分:1)

我看到了一些问题。

  1. 你的函数dogType()应该返回一个String的数组,但你只返回一个元素。
  2. 您要返回的元素不存在。 dogType[]数组的索引为0到2,没有索引3.
  3. 通过更改

    来解决这两个问题
    return dogType[3];
    

    return dogType;
    

答案 4 :(得分:1)

您正在尝试返回字符串而不是数组。它与返回类型不兼容,因为返回类型是字符串数组。所以它给你编译时错误。

所以请返回dogType而不是dogType[3]

dogType is array of string

dogtype[3]is just a string of dogType array index 3

答案 5 :(得分:1)

首先,我看到你必须知道函数的返回类型,并且函数dogType()的返回类型是String [],所以你必须返回一个String数组。

return dogType[3];//return a String object not the String array.

所以你可以试试这个:

return dogType;//return a String array.