关于条件运算符'?' ,有人可以用简单的if else格式向我解释一下吗? AutoFFSuccess,ActSuccess,FUPSuccess是bool值。
char StatusCode = (AutoFFSuccess) ?
(ActSuccess) ?
'P' : 'W' : (FUPSuccess) ?
(ActSuccess) ?
'F' : 'G' : 'E';
答案 0 :(得分:3)
我通常会这样格式化:
char statusCode = AutoFFSuccess ? ActSuccess ? 'P' : 'W'
: FUPSuccess ? ActSuccess ? 'F' : 'G'
: 'E'
或者:
char statusCode;
if (AutoFFSuccess)
{
if (ActSuccess)
{
statusCode = 'P';
}
else
{
statusCode = 'W';
}
}
else
{
if (FUPSuccess)
{
if (ActSuccess)
{
statusCode = 'F';
}
else
{
statusCode = 'G';
}
}
else
{
statusCode = 'E';
}
}
但这真的不太好。
我没有使用以这种方式嵌套的条件表达它,而是使用“堆叠”单条件运算符将每个选项分开。请注意,有些人不喜欢这样,但我觉得它很简单,一旦你习惯了它:
char statusCode =
AutoFFSuccess && ActSuccess ? 'P'
: AutoFFSuccess ? 'W'
: FUPSuccess && ActSuccess ? 'F'
: FUPSuccess ? 'G'
: 'E';
或者更明确:
char statusCode =
AutoFFSuccess && ActSuccess ? 'P'
: AutoFFSuccess && !ActSuccess? 'W'
: !AutoFFSuccess && FUPSuccess && ActSuccess ? 'F'
: !AutoFFSuccess && FUPSuccess && !ActSuccess ? 'G'
: 'E';
(我假设评估之间的条件不会改变,请注意......)
答案 1 :(得分:1)
这样的事情:
char StatusCode;
if (AutoFFSuccess)
{
if (ActSuccess)
StatusCode = 'P';
else
StatusCode = 'W';
}
else if (FUPSuccess)
{
if (ActSuccess)
StatusCode = 'F';
else
StatusCode = 'G';
}
else
StatusCode = 'E';
答案 2 :(得分:1)
if(AutoFFSuccess){
if(ActSuccess)
statuscode='P';
else
statuscode='W';
}
else if(FUPSuccess){
if(ActSuccess)
statuscode='F';
else
statuscode='G';
}
else statuscode = 'E';
答案 3 :(得分:0)
在伪代码中:
if AutoFFSuccess is true:
if ActSuccess is true:
StatusCode is 'P'
else:
StatusCode is 'W'
else:
if FUPSuccess is true:
if ActSuccess is true:
StatusCode is 'F'
else:
StatusCode is 'G'
else:
StatusCode is 'E'