【发布时间】:2017-04-11 09:37:36
【问题描述】:
构建一个简单的算法,其中基于各种输入(x、y、z),一个短语将被发送回给用户。存储和搜索这些短语的最快方法是什么?
目前,我正在使用各种 if 语句。但我想知道是否应该改用某种字典或哈希映射。
我在这里发布了一个代码示例。
谢谢!
for ( $i=0 ; $i < count($age) ; $i++ ) {
if ($age[$i] >= 95) {
$something = "You need a plant";
} elseif ($age[$i] >= 85 && $age[$i] < 95) {
$something = "You need a small rug and a plant";
} elseif ($age[$i] >= 75 && $age[$i] < 85) {
$something = "You need a rug";
} elseif ($age[$i] >= 60 && $age[$i] < 75) {
$something = "You need a coffee table";
} elseif ($age[$i] >= 55 && $age[$i] < 60) {
$something = "You need a small table";
} elseif ($age[$i] >= 51 && $age[$i] < 55) {
$something = "You need a table";
} elseif ($age[$i] >= 42 && $age[$i] < 51) {
$something = "You need a knife";
} elseif ($age[$i] >= 35 && $age[$i] < 42) {
$something = "You need a knife and a jar";
} elseif ($age[$i] >= 22 && $age[$i] < 35) {
$something = "You need a knife, bowl, jar and a small book";
} elseif ($age[$i] >= 5 && $age[$i] < 22) {
$something = "You need a knife, bowl, jar and a book";
} else {
$something = "Go back to sleep";
}
if ($somethingElse[$i] >= 30) {
$also = " and we'll see you tomorrow!";
} else {
$also = ".";
}
$phrase[$i] = ''.$something.''.$also.'';
}
【问题讨论】:
-
请提供您尝试过的代码、示例输入和预期输出,并用您使用的编程语言标记问题。
-
已更新代码示例。
-
实际上取决于您必须进行的测试类型。可能最好你给出一个具体的案例,我们可以给出具体的答案。答案在很大程度上取决于可以以类似方式处理这些条件中的多少。如果你有
$x > 3,然后是$x > 2,$x > 0,等等......那么还有改进的余地。 -
谢谢@trincot。我已经更新了我的代码示例。是的,它非常笨拙,这就是为什么我想找到一种更聪明的方法来做到这一点。提前谢谢!