[Ruby][3] 条件语句
1、if
if a==1 then puts "ok" end #单行的写法 if a==1; puts "ok" end #也可以这样 if a==1 then puts "ok";puts "ok"; end #单行多语句
if a==1;puts "ok";puts "ok"; end #这样写就太恶心了
从上面可以看出,ruby相当自由,但是从可读性、不易出错……等等考虑,单行多语句if建议采用第三种写法,即:
if 条件 then 语句1;语句2; end
单行单语句常常写成:
puts "ok" if a==1
多行更清晰:
if a==1 puts "ok" end
2、if else
if a==1 puts "ok" else puts "no" end
if a==1 puts "ok" elsif a==2 #elsif puts "no" else puts "err" end
3、unless
在ruby中应用相当广泛,有滥用的趋势。
先看一个if:
if a!=1 puts "ok" end
可以写成:
unless a==1 puts "ok" end
以下写法应用最广:
puts "ok" unless a==1 #非常接近于自然语言,被外国人广泛应用
4、case when
就是C、Java或者C#中的switch case。
case a when 1 puts "ok" when 2 puts "no" else puts "err" end
当然,when的内容很广泛,数值、字符串、区间、正则表达式……统统可以,不像C语言只能是int。