2014-11-24 36 views
1

我无法返回数组的值,我知道我返回它错了,但我不知道如何。请帮助。返回数组主体()

这些是操作的指令:

说明:代码,对于3种 不同狗类型提示)称为dogTypes(的方法,存储类型称为狗, 一个本地阵列并返回该数组的在main()中调用语句。一旦 main()获取数组,它将使用for循环在如下所示的单独行上打印数组 内容,其中9表示 数值,以便标签读取“Dog Type 1:”,然后“Dog类型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]; 

     } 
    } 
+1

只要使用'返回dogtype;'。当你说'return dogType [3];'你试图返回一个字符串,在这种情况下,因为数组中有3件事情而不存在,所以'4'将是第4个。 – csmckelvey 2014-11-24 03:25:00

回答

1

你只返回数组的第3个指数为整个数组返回。 更改此:

return dogType[3]; 

return dogType; 

而且你的阵列是不是有第三个指标。如果您尝试访问第三个索引,您将获得ArrayIndexOutOfBoundsException

1

你不返回返回dogType [3]。

您可以使用:

return dogType 
1

您在返回数组走错了路。

return dogType [3];

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

擦除[3]

返回dogType;

1

我看到一些问题。

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

同时解决通过改变

return dogType[3]; 

return dogType; 
1

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

所以返回dogType代替dogType[3]

dogType is array of string 

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

它不是'docType'它是'dogType'。 – Joe 2014-11-24 03:30:17

+0

@johny谢谢改变。 – NFE 2014-11-24 03:32:01

1

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

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

,所以你可以试试这个:

return dogType;//return a String array.