[英]What's wrong with my Recursion?
我需要使用递归来实现我正在尝试实现的方法。 问题是这里的递归不起作用,因为我认为它会。 这是我的代码,我将在下面进一步解释。
public void printer(int level) {
System.out.println("A Car " + getId());
for (int j=0; j< carTypes.size(); j++) {
carTypes.get(j).printer( Index.get(j)+1);
if (carTypes.get(j) instanceof Toyota) {
level = 1;
}
else {
level = 1;
for (int i = 0; i <= j; i++){
if (j == Index.size()-1)
break;
if (Index.get(i) == Index.get(j+1)) {
number++;
}
}
}
System.out.println("Is recursion working right?");
}//End of for loop
}
我遇到的问题是我希望carTypes.get(j).printer(Index.get(j)+1)之后的所有内容; 将被忽略,方法将循环。 我知道如果发生这种情况,我将不得不寻找另一个来处理我的for循环但是现在,我只是希望递归工作。 我不完全确定我提供的信息是否足够,如果您需要更多信息,我会很乐意提供更多信息。
谢谢
递归:从自身调用方法。
现在, carTypes.get(j).printer( Index.get(j)+1);
此行每次调用打印机方法,但在不同的对象上。
所以,事实上你并没有调用相同的printer
方法,因此没有发生递归。
编辑:
我知道如果发生这种情况,我将不得不寻找另一个来处理我的for循环但是现在,我只是希望递归工作。
更换
carTypes.get(j).printer( Index.get(j)+1);
同
printer( Index.get(j)+1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.