楼主遇到这样一个问题:
有10个人,分别是甲,乙,丙,丁,戊,己,庚,辛,壬,癸。
它们的优先级别是甲>乙>丙>丁>戊>己>庚>辛>壬>癸。
现在有这样一个需求。让这10个人中的其中一个人去做一件事情。
根据他们优先级别去选,
假设0=不在家,1=在家,若甲=1,就让甲去做,若甲=0;就让乙去做。若乙=1,就让乙去做,若甲=0;就让丙去做,以此类推。
若使用php处理这类问题,我以前的做法是一层一层的嵌套if判断,代码如下:
<?php
if ($a == 0) {
/*不在家的时候让下一位去干*/
if ($b == 0) {
/*不在家的时候让下一位去干*/
if ($c == 0) {
/*不在家的时候让下一位去干*/
if ($d == 0) {
/*不在家的时候让下一位去干*/
if ($e == 0) {
/*不在家的时候让下一位去干*/
if ($f == 0) {
/*不在家的时候让下一位去干*/
if ($g == 0) {
/*不在家的时候让下一位去干*/
if ($h == 0) {
/*不在家的时候让下一位去干*/
if ($j == 0)
{
/*不在家的时候让下一位去干*/
if ($k == 0) {
/*不在家的时候让下一位去干*/
} else
{
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
?>
后来觉得这种做法过于死板。不灵活。请问各位大师更好更灵活的办法解决此类问题?
后来觉得这种做法过于死板。不灵活。请问各位大师更好更灵活的办法解决此类问题?
麻烦给我简单的例子。
此问题可以抽象一点,
可以利用
foreach
和表驱动法
来简化if
判断。示例代码如下:
结果如下: