C函数无限循环问题
C Function Infinite Loop issue
我相信有一个简单的解决方案可以解决我的问题,但我的脑子太热了,现在无法思考。
在我的主要函数中,我有一个我们将调用的函数 "Function1"。在 "Function1" 中,我调用了另一个函数来验证 "Function1" 中的数据,让我们称之为 "Function2"。为了让 "Function2" 做好它的工作,它需要再次调用 "Function1"。这显然是我如何获得 "Function1" 和 "Function2" 的无限循环,反复相互调用。我需要创建跟踪此方法的方法,以便在第一次通过 Main --> Function1 --> Function2 --> Function1 --> End 后停止循环,但我的实现一直失败。
非常感谢任何帮助和指导。
您需要将级别计数器传递给函数 1。第一次调用时level为0。如果level为0,则可以调用function2。如果它 > 0 则不调用 function2。
当 function2 调用 function1 时,它将级别设置为 1(或增加)。
这就是你进行递归调用的方式。当然,您可以根据需要将结束条件更改为其他内容(而不仅仅是 0 和 1)。
您可以设置一个计数器整数,并且只有当计数器小于 1 时才 运行 Function2(或者您希望循环在中断之前迭代多少次)。
例如(伪代码):
int count;
Function1{
...
while(count < 1){
Function2{
.... //Function2 code
count++;
}
}
.. //any code from Function1 that should run after Function2
}
(请注意,如果您愿意,您也可以使用布尔值来执行此操作 - 我更喜欢整数方法,因为您可以很容易地在突破之前更改迭代次数)
我相信有一个简单的解决方案可以解决我的问题,但我的脑子太热了,现在无法思考。
在我的主要函数中,我有一个我们将调用的函数 "Function1"。在 "Function1" 中,我调用了另一个函数来验证 "Function1" 中的数据,让我们称之为 "Function2"。为了让 "Function2" 做好它的工作,它需要再次调用 "Function1"。这显然是我如何获得 "Function1" 和 "Function2" 的无限循环,反复相互调用。我需要创建跟踪此方法的方法,以便在第一次通过 Main --> Function1 --> Function2 --> Function1 --> End 后停止循环,但我的实现一直失败。
非常感谢任何帮助和指导。
您需要将级别计数器传递给函数 1。第一次调用时level为0。如果level为0,则可以调用function2。如果它 > 0 则不调用 function2。 当 function2 调用 function1 时,它将级别设置为 1(或增加)。 这就是你进行递归调用的方式。当然,您可以根据需要将结束条件更改为其他内容(而不仅仅是 0 和 1)。
您可以设置一个计数器整数,并且只有当计数器小于 1 时才 运行 Function2(或者您希望循环在中断之前迭代多少次)。
例如(伪代码):
int count;
Function1{
...
while(count < 1){
Function2{
.... //Function2 code
count++;
}
}
.. //any code from Function1 that should run after Function2
}
(请注意,如果您愿意,您也可以使用布尔值来执行此操作 - 我更喜欢整数方法,因为您可以很容易地在突破之前更改迭代次数)