我有一个结果最后得到的方法,我想检测数字是否不为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方法。我该如何解决?提前谢谢。
答案 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