我创建了一个String方法,该方法使用循环返回对象的所有数据元素。问题在于,由于它是一个return语句,它将执行一次循环,然后在执行return语句后退出该方法。
我查看了StackOverflow和互联网,但无法帮助自己解决此问题。
代码:
public String display()
{
for (int i=0; i<count; i++) //assume count has the value of 3
{
return "Name: "+item[i].getName(); //this is the issue; only loops once, then exits method
//also assume that an object item[] has been initialised with 3 positions
}
}
您的代码无法正常工作的原因是,一旦到达循环中的语句,它就会立即返回。函数具有返回值,在Java中,return“ x”语句将值“ x”返回到上一个语句。
假设您在代码中编写了代码
entireArray = display();
在执行过程中到达该语句时,将调用display方法。然后,代码跳转到显示方法。调用display方法时,它会跳入循环。在第一行,它看到return "Name: "+item[i].getName();
这将获取第一项的名称,并将其附加在“名称:”之后。然后,该函数返回到上一行,wholeArray = display();。
基本上,然后将display()替换为函数的返回值。如果要确保所有内容都包括在内,请使用类似以下内容的代码来建模:
public String display() {
String total = "Name: ";
for (int i = 0; i < item.length; i++) {
total += item[i].getName();
}
return total;
}
这样可以确保返回“ item”数组中每个项目的名称。
我建议您阅读一些有关调用堆栈的文章,网址为http://en.wikipedia.org/wiki/Call_stack。这将有助于解释函数如何返回值,以及为什么原始代码无法正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句