gpt4 book ai didi

java - 递归函数中的全局变量如何保持为零?

转载 作者:行者123 更新时间:2023-12-03 23:11:31 28 4
gpt4 key购买 nike

所以如果我有一个带有全局变量 var_ 的递归函数:

int var_;

void foo()
{
if(var_ == 3)
return;
else
var_++; foo();
}

然后我有一个调用 foo() 的函数:

void bar()
{
foo();
return;
}

每次调用 foo 时设置 var_ =0 的最佳方法是什么,而不是从其自身调用。我知道我可以这样做:

void bar()
{
var_ =0;
foo();
return;
}

但我经常使用递归函数,我不想调用 foo 而忘记在以后设置 var_=0。

有人对如何解决这个问题有什么建议吗?

谢谢,乔希

最佳答案

foo() 变成辅助函数。

void foo() {
var_ = 0;
foo_helper();
}

void foo_helper() {
if(var_ == 3)
return;
else
var_++; foo_helper();
}

您不必更改任何现有代码,您仍然可以调用 foo() 并让它完成工作。

关于java - 递归函数中的全局变量如何保持为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4672035/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com