嘿我正在制作一个在循环中使用递归的方法,并且出于某种原因,for循环从不迭代......这是我正在做的一个例子,但代码更简单。代码永远不会执行for循环中的return语句。程序以状态0退出。
public static int print (int index, String num) throws IOException
{
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("FILE.out")));
if(index == 6)
{
out.println(num);
return 5;
}
else
{
String tempName = num;
int i = 0;
for(int i = 0; i < 10; i++)
{
tempName = num;
tempName = num + Integer.toString(i);
System.out.println("Num: " + num + " Index: " + index + " i: " + i);
return print((index + 1), num);
}
}
if(index == 0)
out.close();
return 5;
}
控制台打印:
Num:Index:0 i:0
Num:0指数:1 i:0
Num:00 Index:2 i:0
,文件FILE.out为空。
答案 0 :(得分:2)
你在第一次迭代中返回。
解决方案:不要在此行使用return:
return print((index + 1), num);
由于无法猜出你的初衷是什么,很难给出能够真正改善你问题的答案。
答案 1 :(得分:1)
“return”关键字退出整个方法。超出return语句点的方法内的代码将不会执行。它内部的代码块无关紧要。您可以在多个嵌套循环中,并且当调用return时,所有循环将立即停止,您将退出该方法。在你的情况下,你调用“返回打印”,告诉代码开始另一个print方法调用,但这个调用方法在收到结果后立即退出,并且不会继续for循环或其下面的任何代码。