我尝试用逗号分隔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
答案 0 :(得分:5)
您的问题似乎是"我怎样才能将所有这些陈述放在一行上以减少行数#34;
通常,您可以使用";"在红宝石中取代End-of-Lins。因此:
case selection
when 1; system "clear"; view_all_entries; main_menu
...
或者
case selection
when 1 then system "clear"; view_all_entries; main_menu
...
使用&#34 ;;"在任何方面都不是像红宝石一样,不推荐。请参阅下面的更好的重构,删除重复的代码。
答案 1 :(得分:4)
我倾向于这么写:
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
答案 2 :(得分:3)
我已经尝试过逗号,但它不起作用
是的,确实如此:
case value
when 1, 2
"one or two"
else
"something other than one or two"
end
如果value
为1或2 ,则返回“一个或两个”
答案 3 :(得分:3)
您可以使用when - then
语法。请注意,如果线条变得太长,则认为这是不好的做法:
case value
when 1 then statement1
when 2 then statement2
when 3 then statement3
when 4 then statement4
end
要在同一行上执行相同条件的多个语句,您可以使用;
将它们分开。但是,这一直被认为是一种不好的做法:
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