我尝试用逗号分隔when子句中的语句,但是它不起作用。
当1; 陈述声明陈述
当2; 陈述声明陈述
我在网上找不到任何示例。
case selection
when 1
system "clear"
view_all_entries
main_menu
when 2
system "clear"
create_entry
main_menu
when 3
system "clear"
search_entries
main_menu
when 5
puts "Good bye!"
exit(0)
else
system "clear"
puts "Sorry, that is not a valid input"
main_menu
end
Run Code Online (Sandbox Code Playgroud)
您可以使用when - then语法。请注意,如果行变得太长,则被认为是不好的做法:
case value
when 1 then statement1
when 2 then statement2
when 3 then statement3
when 4 then statement4
end
Run Code Online (Sandbox Code Playgroud)
要在同一行上执行相同条件的多个语句,可以用 分隔它们;。然而,这始终被认为是一种不好的做法:
case value
when 1 then statement1; statement11; statement12
when 2 then statement2; statement21; statement22
when 3 then statement3; statement31; statement32
when 4 then statement4; statement41; statement42
end
Run Code Online (Sandbox Code Playgroud)
您的问题似乎是“如何将所有这些语句放在一行上以减少行数”。
通常,您可以使用“;” 在红宝石中替换行尾。从而:
case selection
when 1; system "clear"; view_all_entries; main_menu
...
Run Code Online (Sandbox Code Playgroud)
要么
case selection
when 1 then system "clear"; view_all_entries; main_menu
...
Run Code Online (Sandbox Code Playgroud)
使用 ”;” 无论如何,都不是像红宝石一样,不推荐使用。参见下面的更好的重构,它去除了重复的代码。
我倾向于这样写:
if selection==5
puts "Good bye!"
exit(0)
end
system "clear"
case selection
when 1 then view_all_entries
when 2 then create_entry
when 3 then search_entries
else puts "Sorry, that is not a valid input"
end
main_menu
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3564 次 |
| 最近记录: |