Ruby elsif条件判断

Ruby elsif条件判断教程

Ruby 中,关键字 if 是用于测试某个条件语句是否满足一定的条件,如果满足特定的条件,则会执行 if 后的代码块,否则就忽略该代码块继续执行后续的代码。

elsif 关键字用于在 if 语句条件不满足的情况下,继续执行 elsif 里面的逻辑判断,如果满足条件则执行 elsif 缩进里面的逻辑。elsif 语句只能写在 if 语句的同级代码的后面,且 elsif 语句可以写任意多个。

Ruby 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语句条件为真

如果 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")

程序运行后,控制台输出如下:

03_ruby elsif判断.png

首先,我们定义了两个变量 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语句条件为假

如果 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")

程序运行后,控制台输出如下:

04_ruby elsif判断.png

首先,我们定义了两个变量 a 和 b,并分别赋值为 10 和 5。接着,我们使用 if 语句判断 a > 20 的条件,如果条件满足,则执行缩进里面的输出语句。

同时,我们还使用 elsif 语句,判断 a > b 的条件时否满足,如果 if 语句不满足,elsif 语句满足,则才会执行 elsif 语句里面的逻辑。

最后,我们的程序输出了 "a > b""Over" ,因为在第一个判断时 a > 20 的条件是不成立的,所以不会执行 if 大括号里面的输出语句,此时,elsif 语句里面的逻辑是成立的,而且前面的 if 语句不成立了,所以 elsif 里面的语句能成功执行。最后一个输出语句不管条件满足不满足则都会执行。

多个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")

程序运行后,控制台输出如下:

05_ruby elsif判断.png

首先,我们定义了两个变量 a 和 b,并分别赋值为 10 和 5。接着,我们使用 if 语句判断 a > 20 的条件,如果条件满足,则执行缩进里面的输出语句。

同时,我们还使用 elsif 语句,判断 a > 15 的条件时否满足,判断 a > 10 的条件是否满足,判断 a > b 的条件是否满足,如果满足任意一个,则会执行相对应的代码。

最后,我们的程序输出了 "a > b""Over" ,因为在第一个判断时 a > 20 的条件是不成立的,所以不会执行 if 缩进里面的输出语句,此时,最后一个 elsif 语句里面的逻辑是成立的,而前面所有的 elsif 语句都不成立,所以最后一个 elsif 里面的语句被执行。最后一个输出语句不管条件满足不满足则都会执行。

Ruby elsif条件判断总结

elsif 关键字用于在 if 语句条件不满足的情况下,继续执行 elsif 里面的逻辑判断,如果满足条件则执行 elsif 缩进里面的逻辑。elsif 语句只能写在 if 语句的同级代码的后面,且 elsif 语句可以写任意多个。Ruby elsif 语句语法:

if condition [then] statement1 elsif condition1 [then] statement2 elsif condition2 [then] statement3 end