在 Ruby 中,关键字 if 是用于测试某个条件语句是否满足一定的条件,如果满足特定的条件,则会执行 if 后的代码块,否则就忽略该代码块继续执行后续的代码。
elsif 关键字用于在 if 语句条件不满足的情况下,继续执行 elsif 里面的逻辑判断,如果满足条件则执行 elsif 缩进里面的逻辑。elsif 语句只能写在 if 语句的同级代码的后面,且 elsif 语句可以写任意多个。
if condition [then]
statement1
elsif condition1 [then]
statement2
elsif condition2 [then]
statement3
end
参数 | 描述 |
---|---|
if | if 条件判断使用的关键字 |
condition | 条件判断语句,必须返回真或者假 |
elsif | elsif 条件判断使用的关键字 |
condition1 | 条件判断语句,必须返回真或者假,如果 condition 不满足,才会判断 condition1 |
condition2 | 条件判断语句,必须返回真或者假,如果 condition 和 condition1 都不满足,才会判断 condition2 |
Ruby 中的 elsif 语句后面的条件判断表达式只有在 if 条件不满足的情况下,才会测试 elsif 的条件。
这里,如果 if 的条件 condition 为假,此时会继续测试 elsif 的条件判断 condition1,如果此时 condition1 为真,那么下面的 condition2 就不会再继续判断。
否则,继续判断 condition2 的条件,如果满足,则执行,否则,什么都不执行。
如果 if 语句条件为真,则不会执行 elsif 相对应的代码
#!/usr/bin/ruby -w
# -*- coding : utf-8 -*-
puts "HaiCoder(www.haicoder.net)"
a = 10
b = 5
if a > 8
print("a > 8\n")
elsif a > b
print("a > b\n")
end
print("Over\n")
程序运行后,控制台输出如下:
首先,我们定义了两个变量 a 和 b,并分别赋值为 10 和 5。接着,我们使用 if 语句判断 a > 8
的条件,如果条件满足,则执行缩进里面的输出语句。
同时,我们还使用 elsif 语句,判断 a > b 的条件时否满足,如果 if 语句不满足,elsif 语句满足,则才会执行 elsif 语句里面的逻辑。
最后,我们的程序输出了 "a > 8"
和 "Over"
,因为在第一个判断时 a > 8 的条件是成立的,所以会执行 if 缩进里面的输出语句,此时,虽然 elsif 语句里面的逻辑也是成立的,但因为 if 语句已经成立了,if 语句与 elsif 语句是互斥的执行,所以 elsif 里面的语句未能执行。最后一个输出语句不管条件满足不满足则都会执行。
如果 if 语句条件为假,elsif 为真,此时会执行 elsif 相对应的代码
#!/usr/bin/ruby -w
# -*- coding : utf-8 -*-
puts "HaiCoder(www.haicoder.net)"
a = 10
b = 5
if a > 20
print("a > 20\n")
elsif a > b
print("a > b\n")
end
print("Over\n")
程序运行后,控制台输出如下:
首先,我们定义了两个变量 a 和 b,并分别赋值为 10 和 5。接着,我们使用 if 语句判断 a > 20
的条件,如果条件满足,则执行缩进里面的输出语句。
同时,我们还使用 elsif 语句,判断 a > b 的条件时否满足,如果 if 语句不满足,elsif 语句满足,则才会执行 elsif 语句里面的逻辑。
最后,我们的程序输出了 "a > b"
和 "Over"
,因为在第一个判断时 a > 20 的条件是不成立的,所以不会执行 if 大括号里面的输出语句,此时,elsif 语句里面的逻辑是成立的,而且前面的 if 语句不成立了,所以 elsif 里面的语句能成功执行。最后一个输出语句不管条件满足不满足则都会执行。
多个 elsif 语句,会被依次判断,直到满足的第一个执行
#!/usr/bin/ruby -w
# -*- coding : utf-8 -*-
puts "HaiCoder(www.haicoder.net)"
a = 10
b = 5
if a > 20
print("a > 20\n")
elsif a > 15
print("a > 15\n")
elsif a > 10
print("a > 10\n")
elsif a > b
print("a > b\n")
end
print("Over\n")
程序运行后,控制台输出如下:
首先,我们定义了两个变量 a 和 b,并分别赋值为 10 和 5。接着,我们使用 if 语句判断 a > 20 的条件,如果条件满足,则执行缩进里面的输出语句。
同时,我们还使用 elsif 语句,判断 a > 15 的条件时否满足,判断 a > 10 的条件是否满足,判断 a > b 的条件是否满足,如果满足任意一个,则会执行相对应的代码。
最后,我们的程序输出了 "a > b"
和 "Over"
,因为在第一个判断时 a > 20 的条件是不成立的,所以不会执行 if 缩进里面的输出语句,此时,最后一个 elsif 语句里面的逻辑是成立的,而前面所有的 elsif 语句都不成立,所以最后一个 elsif 里面的语句被执行。最后一个输出语句不管条件满足不满足则都会执行。
elsif 关键字用于在 if 语句条件不满足的情况下,继续执行 elsif 里面的逻辑判断,如果满足条件则执行 elsif 缩进里面的逻辑。elsif 语句只能写在 if 语句的同级代码的后面,且 elsif 语句可以写任意多个。Ruby elsif 语句语法:
if condition [then]
statement1
elsif condition1 [then]
statement2
elsif condition2 [then]
statement3
end