2

我需要有关我正在使用 C# 开发的语音识别程序的帮助。

这指的是 Switch 语句。如果我们有一个这样的例子:

//FIRST CASE STATEMENT
case "open chrome":
System.Diagnostics.Process.Start(@"C:\Program Files\Google\Chrome\Application\chrome.exe");
JARVIS.Speak("Loading");
break;
//SECOND CASE STATEMENT
case "Thanks":
JARVIS.Speak("No problem");
break;

我如何做到这一点,如果第一个案例陈述没有说,那么第二个案例将不起作用。但是,如果第一个案例声明是这样,那么它将允许第二个案例声明起作用。

我在这里想我需要一个 IF 语句,但我不确定。

谢谢。

4

3 回答 3

3

怎么样

//FIRST CASE STATEMENT
case "open chrome":
System.Diagnostics.Process.Start(@"C:\Program Files\Google\Chrome\Application\chrome.exe");
JARVIS.Speak("Loading");
alocalvariable = true;
break;

外部开关

if (alocalvariable)    
{
    JARVIS.Speak("No problem");
    alocalvariable = false;
} 
于 2013-07-31T17:03:33.453 回答
2

您并没有真正指定这一点,但是按照这种设置方式,每次您希望开关 2 触发时,都必须按下开关 1 一次:

bool isValid = false;
switch(whateverYourVariableIsCalled)
{


    //FIRST CASE STATEMENT
    case "open chrome":
        System.Diagnostics.Process.Start(@"C:\Program Files\Google\Chrome\Application\chrome.exe");
        JARVIS.Speak("Loading");
        isValid = true;
        break;
    //SECOND CASE STATEMENT
    case "Thanks":
        if (isValid)
        {
            JARVIS.Speak("No problem");
        }
        isValid = false;
        break;
}
于 2013-07-31T17:06:38.127 回答
0

Switch/Case 就像 if-else 语句,它只会执行一个 case。

您将需要一个嵌套的 if 语句来执行此操作。

为了使您的代码更具可读性和可理解性,您可能可以将您的案例变成一个函数,并在满足某些条件时调用该函数。

于 2013-07-31T17:06:14.490 回答