友
如何实现以下复杂逻辑?
flag1可以是"N"或"A"或"I"
flag2可以是"N"或"A"或"I"
flag3可以是"N"或"A"或"I"
function(string flag1,string flag2,string flag3)开始
该函数需要返回:
如果flag1,flag2和flag3为"N"则返回"None"
如果flag1,flag2和flag3为"A",则返回"Active"
如果flag1,flag2和flag3为"I",则返回"Inactive"
如果flag1,flag2和flag3是"A"和"I"(或"N"),则返回"both"
例如1)flag1为"A",flag2为"I",flag3为"I",
例如2)flag1为"I",flag2为"A",flag3为"I",
例如2)flag1为"A"和flag2是"N",flag3是"我"
回顾结果
结束
谢谢你的回复,但没有一个帖子给出答案.我知道是否有其他约束和寻找逻辑来实现上面的psedocode.所有四个都是特殊的条件#4很复杂,需要知道如何实现它.
the*_*oop 20
你对第4点的逻辑令人困惑......
我会使用枚举值,而不是字符串 - 它更加类型安全(例如,如果有人传递"WIBBLEWOBBLE"给你的方法怎么办?它应该返回什么?)
enum Value { None, Active, Inactive, Both }
private Value GetValue(Value flag1, Value flag2, Value flag3) {
if (flag1 == flag2 && flag2 == flag3) // they are all the same
return flag1;
else return Value.Both; // there is a difference
}
Run Code Online (Sandbox Code Playgroud)