在c#中将代码从if语句更改为switch语句

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (56)

我从来没有使用switchcase而不是if / else if,我想知道如何从if / else if转到switch语句。我真的很感激帮助!任务是在文本框中输入一定量的风(tbVindstyrke),代码应该告诉用户在风车中风的每小时瓦特数(W / t)。它应该将结果发布在标签(lbWattprodusert)中。

我已经得到它与if语句一起工作,据我所知,这占用了很多计算机处理能力(或其他东西)。所以,我想把它“切换”到switch语句。

    double Vs = 0;
    private void btSjekkW_Click(object sender, EventArgs e)
    {
        Vs = Convert.ToDouble(tbVindstyrke.Text);
        if (Vs >= 0 && Vs <= 2.4)
        {
            lbWattProdusert.Text = 0 + " W/t";
        }

        else if (Vs >= 2.5 && Vs <= 3.3)
        {
            lbWattProdusert.Text = 2 + " W/t";
        }

        else if (Vs >= 3.4 && Vs <= 5.4)
        {
            lbWattProdusert.Text = 10 + " W/t";
        }
提问于
用户回答回答于

switch 语句使用常量值。

所以,这是有效的:

var val = 2;
switch (val)
{
    case 1:
        // Do something if val is 1.
        break;
    case 2:
        // Do something if val is 2.
        break;
    default:
        // Do something for all values of val other than 1 or 2.
        break;
}

但是你想转换一个if-else处理范围的东西。double范围也是如此。这是不可能的,因为a switch不允许您使用范围。

如果你的范围是int,你可以假设case为愤怒中的每个值写一个,但这绝对没有意义。

比如说,如果值介于int1-3 之间,则需要执行某些操作,如果介于4-6 之间,则需要执行其他操作。你可以写下像下面这样的东西,但那不是无意义的。你最好坚持下去if-else

var val = 2;
switch (val)
{
    case 1:
    case 2:
    case 3:
        // Do something if val is between 1-3.
        break;
    case 4:
    case 5:
    case 6:
        // Do something if val is between 4-6.
        break;
    default:
        // Do something for all other values of val
        break;
}
用户回答回答于

当您想要基于单个值在多个选项之间进行选择时,switch语句很有用。当你想对范围起作用时,就像在你的例子中所做的那样,需要一个if语句。

这是一个switch语句的示例...您可以看到您指定要在开始时打开的值,然后您可以基于相等性执行不同的操作。

string color = "red";

switch (color)
{
    case "red":
        // do something
        break;
    case "green":
        // do something
        break;
    case "blue":
        // do something
        break;
    default:
        throw new ColorUnknownException(color);
}

很多时候,switch语句是缺少设计模式的标志......但这是另一天的对话。

所属标签

可能回答问题的人

  • 优惠活动秘书

    0 粉丝2 提问8 回答
  • 天使的炫翼

    17 粉丝531 提问7 回答
  • 最爱开车啦

    8 粉丝503 提问6 回答
  • uncle_light

    5 粉丝518 提问5 回答

扫码关注云+社区

领取腾讯云代金券