【问题标题】:Having trouble looping this switch case statement循环此 switch case 语句时遇到问题
【发布时间】:2019-12-15 20:21:17
【问题描述】:

如何循环这个 switch 语句?

我想在单击另一个按钮时更改 3 种按钮颜色。我需要在案例 4 到案例 1 之后无限循环它。 我愿意接受任何其他解决方案。

private void Next_Click(object sender, EventArgs e)
{            
    i++;

    switch (i)
    {
        case 1:
            red.BackColor = Color.Red;
            orange.BackColor = Color.Black;
            green.BackColor = Color.Black;
            break;
        case 2:
            red.BackColor = Color.Red;
            oragne.BackColor = Color.Orange;
            green.BackColor = Color.Black;
            break;
        case 3:
            red.BackColor = Color.Black;
            orange.BackColor = Color.Black;
            green.BackColor = Color.Green;
            break;
        case 4:
            red.BackColor = Color.Black;
            orange.BackColor = Color.Orange;
            green.BackColor = Color.Black;
            break;
    }
}

【问题讨论】:

  • 在情况 4 时设置 i = 0 ?
  • 呃...使用for循环?

标签: c# loops switch-statement


【解决方案1】:

使用整数余数,将为您解决。非零余数的符号与左侧操作数的符号相同

private void Next_Click(object sender, EventArgs e)
{            
    switch (i++ % 4)
    {
        case 0:
            red.BackColor = Color.Red;
            orange.BackColor = Color.Black;
            green.BackColor = Color.Black;
            break;
        case 1:
            red.BackColor = Color.Red;
            oragne.BackColor = Color.Orange;
            green.BackColor = Color.Black;
            break;
        case 2:
            red.BackColor = Color.Black;
            orange.BackColor = Color.Black;
            green.BackColor = Color.Green;
            break;
        case 3:
            red.BackColor = Color.Black;
            orange.BackColor = Color.Orange;
            green.BackColor = Color.Black;
            break;
    }
}

更多阅读:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/arithmetic-operators

【讨论】:

  • 只要不循环 2,147,483,648 次就可以了...
  • @jasonmchoe 理论上是的,但它需要 68 年不断点击,1 pr 秒。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 2017-08-26
  • 1970-01-01
相关资源
最近更新 更多