决策(判断) 3个月前

编程语言
430
决策(判断)

决策

决策结构要求程序开发人员设置一个或多测试或计算条件。如果条件计算结果为真,则执行一个或多个语句;如果条件为假,则执行另外的语句。

下面是大多数程序语言中的决策结构的一般形式:

image

Lua 语言中所有布尔真和非 nil 值都当作真;把所有的布尔假和 nil 作为假。请注意,Lua 中的零会被当作真,而其它大部分语言会将零当作假。

Lua 语言提供了如下几类决策语句。点击下面的链接查看详细内容。

语句 描述
if 语句 if 语句中包括一个布尔表达式和一个或多个语句。
if...else 语句 if 语句也可以选择和 esle 语句一起使用。当条件为假时,则执行 else 语句。
嵌套 if 语句 在 if 语句或者 else if 语句内使用 if 或者 else if。

if 语句

if 语句包括一个布尔表达式和一个或多个语句。  

语法

Lua 语言 if 语句的语法如下:

if(boolean_expression)
then
   --[如果布尔表达式为真,statement(s) 执行。--]
end

如果布尔表达式计算结果为真,则 if 语句内的代码块执行;如果布尔表达式计算结果为假,跳过 if 语句中的代码直接执行 if 语句后面的代码。
Lua 语言中所有布尔真与非 nil 的组合的结果被当作真,而布尔假与 nil 组合被当作假。值得注意的是,Lua 中零被当作真,这一点与其它大部分语言不一样:

流程图

image

示例

--[ 局部变量定义 --]
a = 10;
--[ 检查 if 语句使用的布尔条件 --]
if( a < 20 )
then
   --[ 如果条件为真则输出如下内容 --]
   print("a is less than 20" );
end
print("value of a is :", a);

执行上面的代码可以得到如下的结果:  

a is less than 20
value of a is : 10

if...else 语句

如果 if 语句后面跟上 else 语句,那么条件为假时就执行 else 语句的代码。

语法

Lua 语言中 if...else 语句的语法如下所示:

if(boolean_expression)
then
   --[ 如何条件为真,则执行此处代码。 --]
else
   --[ 如何条件为假,则执行此处代码。 --]
end

当布尔表达式为真时,执行 if 语句的代码块;如果条件为假时,则执行 else 语句的代码块。
Lua 语言中所有布尔真与非 nil 的组合的结果被当作真,而布尔假与 nil 组合被当作假。值得注意的是,Lua 中零被当作真,这一点与其它大部分语言不一样。

流程图

image

示例

--[ 定义局部变量 --]
a = 100;
--[ 检查条件 --]
if( a < 20 )
then
   --[ 如果条件为真,则输出如下内容 --]
   print("a is less than 20" )
else
   --[ 如果条件为假,则输出如下内容 --]
   print("a is not less than 20" )
end
print("value of a is :", a)

执行上面的代码则可以得到如下的输出结果:

a is not less than 20
value of a is :    100

if...else if...else 语句

if 语句后可以选择跟上 else if...else 语句。该语句对于检测多个条件时非常有用。
使用 if,else if 以及 else 时,请注意以下三点:

  • if 语句后面至多可以有一个 else 语句。如果有 else if,则此 else 语句必须在 else if 语句之后。
  • if 语句之后可以有多零个或多个 else if,但是这些 else if 必须在 else 语句之前。
  • 如果一个 if 语句的条件为真时,其后的所有剩余的 else 和 else if 的都不会再执行,也不会测试它们的条件真假。

语法

Lua 中 if...else if...else 语句的语法规则如下:

if(boolean_expression 1)
then
   --[ 如果布尔表达式 1 为真时,则执行此处代码。--]

else if( boolean_expression 2)
   --[ 如果布尔表达式 2 为真时,则执行此处代码。 --]

else if( boolean_expression 3)
   --[ 如果布尔表达式 3为真时,则执行此处代码。 --]
else 
   --[ 当上面所有布尔表达式条件都为假时执行此处代码。--]
end

示例

--[ 定义局部变量 --]
a = 100
--[ 检查布尔条件 --]
if( a == 10 )
then
   --[ 条件为真时输出如下内容 --]
   print("Value of a is 10" )
elseif( a == 20 )
then   
   --[ if else if 条件为真时 --]
   print("Value of a is 20" )
elseif( a == 30 )
then
   --[ if else if 条件为真时 --]
   print("Value of a is 30" )
else
   --[ 如果上述条件全部为假时 --]
   print("None of the values is matching" )
end
print("Exact value of a is: ", a )

执行上面的代码将得到如下的输出结果:

None of the values is matching
Exact value of a is:    100

嵌套 if 语句

在 Lua 语言中,你可以合法的嵌套使用 if-else 语句。这也就是说,你可以在一个 if 或 if-else 语句内再使用一个 if 或 if-else 语句。

语法

嵌套 if 语句的语法规则如下:

if( boolean_expression 1)
then
   --[ 如果布尔表达式 1 为真,则执行此处代码。 --]
   if(boolean_expression 2)
   then
      --[ 如果布尔表达式 2 为真(注:布尔表达式 1 为真),则执行此处代码)。 --]
   end
end

你也可以像嵌套使用 if 语句那样使用嵌套使用 else if...else 语句。

示例

--[ 定义局部变量 --]
a = 100;
b = 200;
--[ 检查条件真假 --]
if( a == 100 )
then
   --[ 如果前面的条件为真,再检查下面的条件。 --]
   if( b == 200 )
   then
      --[ 如果条件为真,则输出如下内容 --]
      print("Value of a is 100 and b is 200" );
   end
end
print("Exact value of a is :", a );
print("Exact value of b is :", b );

执行上面的代码,可以得到如下的输出结果:

Value of a is 100 and b is 200
Exact value of a is :    100
Exact value of b is :    200
image
EchoEcho官方
无论前方如何,请不要后悔与我相遇。
1377
发布数
439
关注者
2222860
累计阅读

热门教程文档

C#
57小节
Python
76小节
Docker
62小节
MyBatis
19小节
C++
73小节