2.5Ruby语言的条件(Conditional)和循环(Loop)语句

Ruby的语法是面向表达式的,在Ruby中,所有“语句“(statement)实际上都是表达式(expression)。表达式并不是都会返回有意义的值。

条件判断

条件与处理之间必须有分界符,可以是换行符,也可以是分号,还可以是关键字then。如果存在换行符(或分号),就可以将then省略掉。

1.if条件

if语句按照由上到下的顺序进行判断。如果条件1为真时,执行处理1。条件1为假时,程序再判断条件2,以此类推。

#语句风格
if 条件 
  处理
end

#then风格
if 条件 then 处理 end

#修饰符风格
处理 if 条件
if 条件1 
  处理1
elsif 条件2
  处理2
elsif 条件3
  处理3
else
 处理4
end

2.unless条件

unless语句的用法刚好与if语句相反,不可以出现elsif从句。

#语句风格
unless 条件
  处理1
else
  处理2
end

#then风格
unless 条件 then 处理 end

#修饰符风格
处理 unless 条件

3.case条件

case英文的意思是 n. 情况;实例;箱,vt. 包围;把…装于容器中,顾名思义把case后面的比较对象装于when里面的“容器“中进行逐一条件判断。

有多个条件时虽然if也能达到效果,但如果需要比较的对象只有一个,使用case语句会使程序更简单,更易于理解。

#语句风格
case 比较对象
when 值1
  处理1
when 值2
  处理2
when 值3
  处理3
else
  处理4
end

#then风格
case 比较对象
when 值1 then 处理1
when 值2 then 处理2
when 值3 then 处理3
else 处理4
end

#===风格
x = 3
case
when 1===x then "one"
when 2===x then "two"
when 3===x then "three"
else "many"
end
# Prints "three"

循环控制

条件与处理之间必须有分界符,可以是换行符,也可以是分号,还可以是关键字do。如果存在换行符(或分号),就可以将do省略掉。

4.while循环

只要条件为真,就会不断地重复循环处理。

#语句风格
while 条件
  希望循环的处理
end

#修饰符风格
希望循环的处理 while 条件
i = 1
while i < 3
  puts i
  i += 1
end
> ruby while.rb
1
2

5.until循环

until语句的用法刚好与while语句相反,直到条件为真,就会不断地重复循环处理。

#语句风格
until 条件
  希望执行的处理
end

#修饰符风格
希望执行的处理 until 条件
sum = 0
i = 1
until num >= 50
  sum += i
  i += 1
end
puts sum

6.for/in循环

for或for/in循环可对一个可枚举的对象(比如数组)的元素进行迭代。

for 变量 in 可枚举的对象 do
  希望循环的处理
end
for 变量 in 开始时的数值..结束时的数值     #范围对象
  希望循环的处理
end
sum = 0
for i in 1..5
  sum = sum + i
end
puts sum                  #=>15

改变控制流

7.return

使一个方法退出并且向其调用者返回一个值。如非必须,可省略。

8.break

使一个循环(或迭代器)退出。

9.next

使一个循环(或迭代器)跳过当前迭代的剩余部分,进入下一个迭代。

10.redo

从头开始一个循环或迭代器的当前迭代。

11.retry

重新开始一个迭代器,重新对整个表达式求值。还可用于异常处理。

12.throw/catch

一种多用途的控制语句。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/ruby/rubybasic/1567.html

发表评论

登录后才能评论