我无法返回数组的值,我知道我错了,但我不知道怎么回事。请帮忙。
这些是说明:
说明:编写一个名为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];
}
}
答案 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)
我看到了一些问题。
dogType()
应该返回一个String
的数组,但你只返回一个元素。dogType[]
数组的索引为0到2,没有索引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.