1.if条件
#语句方式
if 表达式
#语句
end
#修饰符方式
语句 if 表达式
2.if-else条件
if 表达式
#语句1
else
#语句2
end
3.if-else-if条件
if 表达式1
#语句1
elsif 表达式2
#语句2
else
#语句3
end
4.unless条件
unless
语句与 if
语句相反。
注意:unless
语句无 elsif
从句。
#语句方式
unless 表达式
#语句
end
#修饰符方式
语句 unless 表达式
5.unless-else条件
unless 表达式
#语句1
else
#语句2
end
6.case条件
case
语句用于将 case_expression
按从上往下的顺序与 when_expression
逐个进行匹配测试,直到 case
语句结束 或 遇到第一个匹配的 when_expression
语句。如果匹配成功,则执行匹配成功的 when_expression
后的语句。
else
语句非必须有。如果有 else
语句,当 case_expression
匹配不到任何一个 when_expression
时,else
语句才会被执行,否则不会被执行。一个 case
语句只能有一个 else
语句。
注意:匹配测试使用的是 when_expression
的 ===
运算符。
case case_expression
when when_expression1
#语句1
when when_expression2
#语句2
when when_expressionN
#语句N
else
#语句
end
7.while循环
#语句方式
while 表达式
#语句
end
#修饰符方式
语句 while 表达式
8.until循环
until
语句与 while
语句相反。
#语句方式
until 表达式
#语句
end
#修饰符方式
语句 until 表达式
9.for-in循环
for-in
语句用于迭代任何可枚举对象(比如数组、哈希、集合、范围等)中的元素。
注意:可迭代对象必须是实现了迭代器方法 each()
的对象。
for 变量名 in 可迭代对象
#语句
end
for 键,值 in 可迭代对象
#语句
end
10.break跳转
一旦遇到 break
语句,则立即跳出(break out of)最近的循环语句 或 迭代器,并从最近的循环语句 或 迭代器外继续向下执行。
break
break 表达式
#返回的多个值会被打包成数组
break 表达式1, 表达式2, 表达式N
11.next跳转
一旦遇到 next
语句,则立即终止最近的循环语句 或 迭代器的本次迭代,继续最近的循环语句 或 迭代器的下一次(next)迭代,并不会完全终止最近的循环语句 或 迭代器。
next
next 表达式
#返回的多个值会被打包成数组
next 表达式1, 表达式2, 表达式N
12.redo跳转
一旦遇到 redo
语句,则立即跳转到最近的循环语句的循环体 或 迭代器的块体内的第一个语句处。
redo
13.yield跳转
yield
yield 表达式1, 表达式2, 表达式N
14.return跳转
return
语句用于将 return
关键字后的表达式的值返回给方法的调用者。
注意:return
关键字只可以被用在方法体内。
return
return 表达式
#返回的多个值会被打包成数组
return 表达式1, 表达式2, 表达式N
如果一个方法体内根本没有 return
语句,则方法体内最后一个表达式的值会返回给方法的调用者。
如果 return
关键字后没有表达式 或者 return nil
,则会将 nil
值返回给方法的调用者。
def f1()
nil
end
def f2()
return
end
def f3()
return nil
end
p f1 # nil
p f2 # nil
p f3 # nil
如果一个方法体内有多个 return
语句,但一旦遇到第一个 return
语句,方法就会立即停止执行,并将遇到的第一个 return
关键字后的表达式的值返回给方法的调用者。
def f(num)
if(num < 0)
return "Negative"
end
if(num > 0)
return "Positive"
end
return "Zero"
end
puts f(-8) # Negative
puts f(0) # Zero
puts f(8) # Positive
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/ruby/rubylang/36157.html