推荐答案
在 Ruby 中,常见的流程控制语句包括:
条件语句:
if/elsif/elseunlesscase/when
循环语句:
whileuntilforloopeach(通常用于迭代)
跳转语句:
breaknextredoretry(已弃用)return
异常处理:
begin/rescue/ensure/retry
本题详细解读
条件语句
if/elsif/else:if用于检查条件是否为真,如果为真则执行相应的代码块。elsif用于在多个条件之间进行选择。else用于在所有条件都不满足时执行的代码块。
if condition1 # 代码块1 elsif condition2 # 代码块2 else # 代码块3 end
unless:unless是if的反义,当条件为假时执行代码块。
unless condition # 代码块 end
case/when:case语句用于多条件分支,类似于其他语言中的switch语句。when用于匹配case中的值。
case variable when value1 # 代码块1 when value2 # 代码块2 else # 代码块3 end
循环语句
while:while循环在条件为真时重复执行代码块。
while condition # 代码块 end
until:until是while的反义,当条件为假时重复执行代码块。
until condition # 代码块 end
for:for循环用于遍历集合或范围。
for i in 1..10 # 代码块 end
loop:loop创建一个无限循环,通常与break结合使用。
loop do # 代码块 break if condition end
each:each方法用于迭代集合中的每个元素。
[1, 2, 3].each do |item| # 代码块 end
跳转语句
break:break用于立即退出循环。
while true break if condition end
next:next用于跳过当前迭代,直接进入下一次迭代。
(1..10).each do |i| next if i.even? # 代码块 end
redo:redo用于重新开始当前迭代,而不检查循环条件。
(1..10).each do |i| redo if some_condition # 代码块 end
retry:retry用于重新开始整个循环,但在 Ruby 2.6 之后已被弃用。
begin # 代码块 rescue retry end
return:return用于从方法中返回值并退出方法。
def method return value if condition end
异常处理
begin/rescue/ensure/retry:begin用于定义可能抛出异常的代码块。rescue用于捕获异常并处理。ensure用于无论是否发生异常都会执行的代码块。retry用于重新执行begin块中的代码。
begin # 可能抛出异常的代码 rescue SomeError => e # 处理异常 ensure # 无论是否发生异常都会执行的代码 end