详细解读Ruby当中的条件判断语句
Ruby的提供有条件结构,常见在现代编程语言中。在这里,我们将解释Ruby所有条件语句和修饰符
Rubyif...else语句:
语法:
ifconditional[then] code... [elsifconditional[then] code...]... [else code...] end
if表达式用于条件执行。值为false和nil都是假的,其它的都是true。注意Ruby串使用的是elsif,不是elseif也不是elif。
if条件为ture则执行代码。如果条件不为ture,那么将执行else子句中指定的代码。
if表达式的条件是保留字,那么,一个换行符或分号分开代码。
实例:
#!/usr/bin/ruby x=1 ifx>2 puts"xisgreaterthan2" elsifx<=2andx!=0 puts"xis1" else puts"Ican'tguessthenumber" end xis1
Rubyif修辞符:
语法:
codeifcondition
if条件为真执行代码。
实例:
#!/usr/bin/ruby $debug=1 print"debug\n"if$debug
这将产生以下结果:
debug
Rubyunless语句:
语法:
unlessconditional[then] code [else code] end
如果条件为false,执行代码。如果条件是false,else子句中指定的代码被执行。
例如:
#!/usr/bin/ruby x=1 unlessx>2 puts"xislessthan2" else puts"xisgreaterthan2" end
这将产生以下结果:
xislessthan2
Rubyunless修辞符:
语法:
codeunlessconditional
执行代码,如果有条件的话为false。
实例:
#!/usr/bin/ruby $var=1 print"1--Valueisset\n"if$var print"2--Valueisset\n"unless$var $var=false print"3--Valueisset\n"unless$var
这将产生以下结果:
1--Valueisset 3--Valueisset
Rubycase语句
语法:
caseexpression [whenexpression[,expression...][then] code]... [else code] end
比较表达式指定的情况下,使用===运算符时,按指定的条款相匹配时执行的代码。
子句计算when与左操作数指定的表达式。如果没有子句匹配时,情况下执行的代码else子句。
when语句的表达保留字,那么,一个换行符或分号分开代码。
那么:
caseexpr0 whenexpr1,expr2 stmt1 whenexpr3,expr4 stmt2 else stmt3 end
基本上类似于以下内容:
_tmp=expr0 ifexpr1===_tmp||expr2===_tmp stmt1 elsifexpr3===_tmp||expr4===_tmp stmt2 else stmt3 end
实例:
#!/usr/bin/ruby $age=5 case$age when0..2 puts"baby" when3..6 puts"littlechild" when7..12 puts"child" when13..18 puts"youth" else puts"adult" end
这将产生以下结果:
littlechild