案例陈述VS IF陈述

时间:2013-08-04 01:27:07

标签: c# if-statement switch-statement

我使用if语句与switch语句获得了不同的结果。

此代码识别我是否说“你好”,如果是,那么它会说“你好”回来:

if (e.Result.Text == "Hello")
{
    JARVIS.Speak("Hello");
}

这个switch语句应该做同样的事情:

string speech = e.Result.Text;

switch (speech)
{
    case "hello":
        JARVIS.Speak("Hello");
        break;
}

为什么在if声明中,我被允许在“你好”之前/之后说什么(例如“好吧你好”)它仍然会识别并回复回来,而在case陈述中,如果你在“你好”之前/之后说出任何话,它将无法识别并回复?

1 个答案:

答案 0 :(得分:2)

if语句和case语句的行为有所不同,因为它们中包含不同的值:

if (e.Result.Text == "Hello")
{
   JARVIS.Speak("Hello"); // This will be executed if e.Result.Text is "Hello"
}

其中 - 作为switch语句(来自你的评论的代码):

string speech = e.Result.Text;
switch (speech)
{
   case "hello":
      JARVIS.Speak("Hello"); // This will be executed if e.Result.Text is "hello"
      break;
}

在C#中,“Hello”和“hello”是两个不同的值。

一种解决方案是在.ToLower()上致电e.Result.Text

string speech = e.Result.Text.ToLower();