我有几个函数。基本上是一个菜单,用户可以在其中选择 1-n 个不同的选项,并且每个选项都有与之关联的功能。在这个例子中,它被简化了。
我试图确定的是过早退出函数的最佳方式。例如,当用户在菜单选项的功能中按下 enter 键时,我希望程序将它们发送回菜单而不在该功能中运行任何其他内容。
在下面的例子中,我简单地调用了 showMenu()
并在它之后放置了一个 return
语句。唯一的问题是,如果用户退出多个函数,最后将需要解开一系列返回语句。
有人可以告诉我是否有更有效的方法来实现这一点,或者我是否赚钱。
void showMenu()
{
//Display menu
//Prompt user for menu option
//Run function of appropriate menu option
runSelectedFunction();
}
void runSelectedFunction()
{
//Get user input for the function and validate
//Check if the user input was only a '\n' if so show the menu and exit
showMenu();
return;
//Do the stuff that this function is meant to do.
}
最佳答案
我觉得不错。或者 - 因为周围有很多人反对让多个导出点形成一个单一的功能 - 你可以这样做:
void func()
{
//get input
if ( checkMenu() )
{
//do the stuff I am meant to do
}
else
{
showMenu();
}
}
因此您避免向您的函数添加第二个返回值。您也可以根据需要始终在函数末尾调用 showMenu()
第一个
马里奥
关于c - 干净地退出 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5547600/