if elseif else太多怎么办
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了if elseif else太多怎么办相关的知识,希望对你有一定的参考价值。
写了一个函数,if elseif else太多,很不漂亮,有没有好的办法优化。主要是判断$child,$mother,$father三个值,每个参数可能有四个值11,10,01,00,第一个参数$child必需的,其它两个可选,计算每一种的组合,根据不同的组合,返回一个不同的$allele值。如$child=00,$mother空值,$father空值,返回 "Unknown"$child=11, $mother= 10, $father空值, 返回"Both (Homozygous)"谢谢,新手只能写成这样难看的代码。
参考技术A 回复 1# feiyue0908 可考虑把数据写到一个数组里。可多维[*]array([*] 'child'=>array(11,10,01,00),[*] 'mother'=>array(11,10,01,00),[*] 'father'=>array(11,10,01,00), [*])[*][*]//然后[*]foreach ($array as $key => $value) [*] // 参考技术B 像这样的要考虑类和设计模式了,把改变和扩展的从不易变化的代码中分离出来就容易维护了。而且系统的弹性也会比较好 参考技术C 这个时候建议去找本面向对象,设计模式的书看看,会很有赶脚的说。 参考技术D 按照OOP的细想,如果IF ELSE太多的话,就要用到设计模式了makefile里怎么表达elseif
makefile 语法里没有直接类似if...elseif...else.....的这种结构,但是有类似 if ...else ...语句的结构: ifeq...else...endif。所以可用嵌套的方式 实现if...elseif...else.....的这种结构ifeq (<arg1>, <arg2>)表示 if(<arg1>等于 <arg2>)
例如:
ifeq ($(CC),gcc)
libs=$(libs_for_gcc)
else
ifeq ($(CC),gplus)
libs=$(libs_for_gplus)
else
libs=$(normal_libs)
endif
endif 参考技术A 用嵌套吧
ifeq ...
...
else
ifeq ...
...
else
...
endif
endif
答案仅供参考。本回答被提问者和网友采纳
以上是关于if elseif else太多怎么办的主要内容,如果未能解决你的问题,请参考以下文章