控制语句
每个编程语言都必须有控制语句,Ruby也不例外。Ruby中的控制语句包含下面几种:
- 条件选择语句 (if/ case)
- 循环语句 (while/ for/ until)
- 迭代语句 (each)
条件选择语句 (if/ case)
x=1
if x > 2
puts "x is greater than 2"
elsif x <= 2 and x!=0
puts "x is 1"
else
puts "I can't guess the number"
end
通过上面例子,基本可以了解if语句的用法了。和其他语言没什么两样。不过在Ruby中,如果你的条件只有一重,可以使用下面的格式,也叫if修饰符:
word = 'world'
puts "hello #{word}" if word
#=> "hello world"
上面的两段代码中,if后面只要跟表示true的表达式,就可以执行if分支,否则就执行其他if分支,比如elsif,或else分支。。
循环语句 (while/ for/ until)
直接看例子吧:
@i = 0;
num = 5;
while @i < num do
puts("Inside the loop i = #@i" );
@i +=1;
end
while循环语句,上面的代码中有一段:
puts("Inside the loop i = #@i" );
这句中的#@i 实际上是#{@i},在变量为非本地变量情况下,Ruby允许你省略{}。
$i = 0;
$num = 5;
begin
puts("Inside the loop i = #$i" );
$i +=1;
end while $i < $num
可以使用begin...end while语句,类似于其他语言的do...while。
until语句:
$i = 0;
$num = 5;
until $i > $num do
puts("Inside the loop i = #$i" );
$i +=1;
end
跟while的条件相反才执行。
for语句:
for i in 0..5
puts "Value of local variable is #{i}"
end
迭代语句 (each)
each是我们最常用的迭代语句,一般都用它来替代循环语句。
[1, 2, 3].each do |i|
puts i
end
这里涉及到do...end代码块,我们下节会讲到这个概念。