【发布时间】:2018-01-21 05:48:25
【问题描述】:
下面的假设案例陈述考虑了三个变量:
- 姓名
- 年龄
- 大蒜过敏
使用下面的 case 语句,目标是将“结果”变量更新为 LATEST 条件,而不是第一个条件匹配。例如如果用户输入变量 age=90、garlic_allergy=false、name=Dracula,case 语句应该返回“Definitely a vampire”(满足最新条件)而不是“Probably NOT a vampire”(满足第一个条件) .
case
when age.to_i < 100 && garlic_allergy = false
result = "Probably NOT a vampire"
when age.to_i < 100 && garlic_allergy = true
result = "Maybe a vampire"
when age.to_i > 100 && garlic_allergy = true
result = "almost certainly a vampire"
when name = "Dracula"
result = "Definitely a vampire"
else
result = "Results inconclusive"
end
puts result
end
这是一个示例案例,但试图弄清楚如何对任何 case 语句或具有多个条件的 if/elsif/else 语句等执行此操作......如何确保程序在每个 when/elsif 中运行语句并返回最新的条件。我尝试通过将语句包装在一个循环中来做到这一点,但还没有任何运气。
【问题讨论】:
标签: ruby if-statement switch-statement boolean conditional-statements