我按执行顺序有一系列IF语句,我的困境是如果输入了一个IF语句,我希望调用方法等到被调用函数完成。事情是我的被调用函数是递归的,所以我不知道什么时候它会结束。这是调用方法的代码。
if(log.isChecked())
{
runlog(sdPath.getAbsolutePath());
}
if(tmp.isChecked())
{
runtmp(sdPath.getAbsolutePath());
}
if(txt.isChecked())
{
runtxt(sdPath.getAbsolutePath());
}
if(bf.isChecked())
{
runbf(sdPath.getAbsolutePath());
}
if(ed.isChecked())
{
runed(sdPath.getAbsolutePath());
}
如果输入log.isChecked(),我希望调用函数(我在这里显示的代码,该函数)等到它检查下一个条件是tmp.isChecked()
正如我之前提到的,所有被调用的函数runlog,runtmp,runtxt,runbf,runed都是递归的。我如何实现我的目标?
答案 0 :(得分:2)
我认为递归可以用电影“初始”来解释。你有3件事要做。
- 去睡觉。
- 史。
- 醒来,吃一碗麦片。
醇>
想象一下,你在做梦,然后在梦中实现梦想。你现在无法醒来吃东西,直到你走出更深层的梦想并完成当前的梦想。
这基本上是你的例子中发生的事情,除了梦想你跑第一个if而你不能退出它直到它到达它的返回条件然后你醒来吃饭(输入第二个if)。
答案 1 :(得分:1)
这应该默认发生。递归的嵌套函数在这里没有区别。
每个if块只会在前一个块完成之后执行,除非您的嵌套函数是启动线程或类似的东西。