检测结果是0,-4还是其他?

时间:2017-10-22 08:38:03

标签: c# wpf if-statement int

我有一个结果最后得到的方法,我想检测数字是否不为0以及它是否为-4。 0意味着好 -4意味着可以解决的问题 其他任何事情都很糟糕。 像

if ( Result != 0)
{
MessageBox.Show("It's bad!")
}
else if ( Result == -4)
{
Thread.Sleep(20000);
MyMethod.TryAgain();
}
else
{
MessageBox.Show("It's good");
}

我的问题是-4不是0,所以如果我得到结果-4,它需要我的Result!= 0方法。我该如何解决?提前谢谢。

5 个答案:

答案 0 :(得分:3)

使用开关案例

switch (Result) {
    case 0: 
        MessageBox.Show("It's good"); 
        break;
    case -4: 
        Thread.Sleep(20000);
        MyMethod.TryAgain();
        break;
    default:
        MessageBox.Show("It's bad!");
        break;
}

Microsoft文档:https://msdn.microsoft.com/en-us/library/06tc147t(v=vs.110).aspx

答案 1 :(得分:2)

只需将if结构重新排序为以下内容:

if ( Result == 0)
{
    MessageBox.Show("It's good")
}
else if ( Result == -4)
{
    Thread.Sleep(20000);
    MyMethod.TryAgain();
}
else
{
    MessageBox.Show("It's bad");
}

因此,首先评估Result != 0案例的初始问题已经消失。

答案 2 :(得分:1)

当您构建一系列非排他性条件时,请从最强的条件开始(即最具体的条件)。否则,将执行较弱条件的代码,阻止访问更具体的条件。

在您的情况下,Result == -4表示Result != 0,意味着第一个条件比第二个条件更具体。因此,您应该在Result == -4之前检查Result != 0。否则,永远不会达到Result == -4

C#提供了多种实现此逻辑的方法。只要您遵循将条件从最具体到最不具体的一般规则进行排序,选择特定的实现取决于您。

答案 3 :(得分:1)

只需更改分支机构的顺序

python3:
init:
    a   b
0  10  20
after div:
     a   b
0  5.0  20
after mul:
      a   b
0  10.0  20

python2:
init:
    a   b
0  10  20
after div:
    a   b
0  10  20
after mul:
    a   b
0  20  20

答案 4 :(得分:0)

抱歉,错误的代码。见下面的评论。

for