2017-07-28 24 views
0

我遇到了这种情况下,不检查定义的变量组合的问题。我试图通过淘汰过程排查问题,发现他们单独工作,但不在团队中工作。所以我的问题是没有人看到任何错误或有任何建议,否则解决这个问题?案例陈述似乎不检查所有组合

switch (true) 
{ 
    case pv131 != 'LAB.CMC1' && pv134 == 'XYZ' && obr21 == 'MISC2': 
    case pv131 != 'LAB.CMC2' && pv134 == 'XYZ' && obr21 == 'MISC2': 
    case pv131 != 'LAB.CMC3' && pv134 == 'XYZ' && obr21 == 'MISC2': 
    case pv131 != 'LAB.CMC4' && pv134 == 'XYZ' && obr21 == 'MISC2': 
    case pv131 != 'LAB.CMC5' && pv134 == 'XYZ' && obr21 == 'MISC2': 
    msg['MSH']['MSH.8']['MSH.8.1'] = '12345678'; 
    break; 
} 

谢谢 - 马特

+4

为什么你甚至使用'switch'?如果它只是'if(pv134 ==='XYZ'&& obr21 ==='MISC2'&& ['LAB.CMC1','LAB.CMC2','LAB.CMC3', 'LAB.CMC4','LAB.CMC5']。indexOf(pv131)=== -1)...'。 –

+1

您没有正确使用switch语句。 switch语句用于评估一个变量的可能值。在案例陈述中,你不能像你那样拥有多个操作员。听起来你想要多个if语句。 –

+1

@DavidP它在语法上很好,它只是一个奇怪的用法 – Bergi

回答

0

来建议什么类似,下面是一个有效的解决方案:

case ['LAB.CMC'].indexOf(pv131) === -1 && pv134 === 'XYZ' && obr21 === 'MISC2': 
msg['MSH']['MSH.8']['MSH.8.1'] = '12345678'; 
break; 

我也能够通过只检查',以减少重复LAB.CMC”。