我的 C 代码中有一个 if
条件。如果 if
条件为真,我需要调用 sleep(1)
系统调用并再次检查 if
条件。这必须最多进行 9 次。如果在这 9 次中的任何时候,if
条件失败,我应该从函数返回。如果 9 次到期,我应该调用另一个函数。为了更清楚,我将在下面编写伪代码。
function1()
{
count = 0
label : if (condition)
{
count++
sleep(1);
if(count < = 9)
goto label;
}
if(count > 9)
{
return;
}
function2(); /* if(condition) failed */
return;
} /* End of function1() */
实现上述逻辑的最佳方式是什么。我不喜欢使用 goto
语句。
最佳答案
您已经实现了一个 for 循环。这将是完全等价的,除了即使第一个 condition
失败时 count 将为 1:
function1()
{
for (count = 1; condition && count <= 9; count ++)
{
sleep(1);
}
if(count > 9)
{
return;
}
function2(); /* if(condition) failed */
return;
} /* End of function1() */
虽然在 C 中,您通常从零开始计数,但这只是风格问题。
function1()
{
for (count = 0; condition && count < 9; count ++)
{
sleep(1);
}
if(count >= 9)
{
return;
}
function2(); /* if(condition) failed */
return;
} /* End of function1() */
编辑
还认为使用单个 return 比使用多个 so 更可取
function1()
{
for (count = 0; condition && count < 9; count ++)
{
sleep(1);
}
if(count < 9)
{
function2(); /* if(condition) succeeded within 9 tries */
}
} /* End of function1() */
关于C程序逻辑实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5014272/