1.8Ruby语言的条件(Conditional)、循环(Loop)、跳转(Jump)

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

(0)
huoxiaoqiang的头像huoxiaoqiang
上一篇 2025年2月7日 16:55
下一篇 2025年2月8日 20:44

相关推荐

发表回复

登录后才能评论