在这种情况下,我使用什么类型的逻辑

本文关键字:类型 什么 这种情况下 | 更新日期: 2023-09-27 18:33:23

我目前正在编写控制台应用程序,我需要做的就是添加一个菜单。我理解基本的 if 语句。如何将用户转移到程序的不同部分?有点像这样:

if (menuoption == 1)
{
    // Transfer to menu option 1
}

在这种情况下,我需要使用什么类型的逻辑?

在这种情况下,我使用什么类型的逻辑

使用菜单开关

//User enters a value.
var menu = Convert.ToInt32(Console.ReadKey());
switch(menu)
{
    case 1:
       //go to menu 1
      break;
    case 2:
       //go to menu 2
      break;
}

控制台 menù 它是如何工作的?在控制台中,您键入某些内容,然后检查某些内容是否与特定功能相关,如果不是,应用程序可以"选择错误,请再次键入"。如何做到这一点?
首先,用户需要编写的是至少一次选择,因此您需要一个do while周期(是的,您可以使用while(true)for(;;)但如果您正在学习,则使用正确的周期是更好的选择)。好的,现在我们在do,获取输入并将其传递到switch(检查Bewar Salah答案),然后创建所需的所有case子句,请记住使用default用于您不需要管理的所有子句。一旦完成,您处于while switch状态。您需要办理什么while?您需要检查用户是否尚未键入退出应用程序的值(因此条件为:if user has not input exit continue run the application, else exit

你可以用一个简单的状态机来做到这一点:

public enum States {State1, State2}
public States State = States.State1;
//Main:
while(true)
{
    switch(state)
    {
        case States.State1:
            //Your code for State1
            break;
        case States.State2:
            //Your code for State2
            break;
        default:
            break;
    }
    //Your Transitions:
    if (Input == "State1") {State = States.State1;}
    else {State = States.State2;}
}

这是一个小教程:带 C 回调的状态机 |代码与生活