"); //-->
今天我们继续学习Lua语法基础教程,中篇。
五、变量
5.1 number变量
变量,可以看作是一个桶,在里面装你想要装的内容。这些内容可以是Lua包含的所有合法类型。
例如:我想要新建一个桶,名叫bucket,在里面放入233这个数字,就可以像下面一样:
让我们试着自己新建几个变量吧!
新建变量year,并将变量的值设置为1926
新建变量month,并将变量的值设置为8
新建变量day,并将变量的值设置为7
5.2 了解nil
nil类型表示没有任何有效值,只要是没有声明的值,它就是nil
比如我打印一个没有声明的值,便会输出nil:
这里需要你思考一下,运行以下代码,将会输出什么结果?
5.3 赋值语句
赋值是改变一个变量值的最基本的方法。
如下面一样,使用等号对左边的变量进行赋值
Lua可以对多个变量同时赋值,变量用逗号分开,赋值语句右边的值会依次赋给左边的变量。
当左右值的数量不一致时,Lua会进行下面的设定:
变量个数 > 值的个数:按变量个数补足nil
变量个数 < 值的个数:多余的值会被忽略
下面的例子可以展示这种设定:
这里需要你思考一下,运行以下代码,将会输出什么结果?
5.4 交换变量
这部分需要你自己完成一个任务:
已知下面的代码,并且已知a和b的值,请在交换他们的值,使打印输出12 34
5.5 输出变量
我们已经知道了,在Lua中,可以使用print函数来打印你想要得到的结果。
同时在上一节,我们学会了新建变量和设置变量的值。
让我们试着输出某个变量吧!使用print函数,输出已知变量。 我们已知变量num为某个数字,试着输出它的值吧!
5.6 算数运算符
运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算。
上一节中,新建的数字变量,我们称之为number类型的变量。
本节我们来学习使用算术运算符,如下所示:
我们可以通过以下实例来理解算术运算符的应用:
你需要完成下面的任务:
已知,一个长方体的长宽高分别为a、b、c(单位米),且这个物体重量为m(单位克)
请打印出物体的密度(单位g/m³)
注:密度计算公式 密度 = 质量 / 体积
六、字符串
6.1 string 类型变量
字符串(即string),就是一串文本数据,可以存储你要的文本。
在第二节中,print出的数据就是一个字符串。
Lua 语言中字符串可以使用以下三种方式来表示:
单引号间的一串字符
双引号间的一串字符
[[和]]间的一串字符
你可以参考下面的例子来深入理解:
接下来你需要完成下面的练习:
新建三个变量s1、s2、s3
分别存入字符串数据:str、abc、233,使输出打印正确
6.2 转义字符
在上一节中,我们学习了如何声明字符串。
但是我们有时候会遇到一些特殊的问题,如:如何输出单引号和双引号?如何输出回车换行?
也许我们可以用下面的方式简单规避,输出单引号时,声明字符串用双引号括起来,像下面这样
同理,输出双引号时,声明字符串用单引号括起来,像下面这样
但是,这样会出现一个问题:如何同时显示单引号和双引号?这里就需要转义字符登场了。
转义字符用于表示不能直接显示的字符,比如后退键、回车键、等。
以 \ 开头的都是转义字符,下面时常用的转义字符格式:
例如,如果我们想给str赋值一个单引号,一个双引号('"),那么我们可以这样写:
下面需要你来完成一个简单的任务:
新建一个变量str,给str赋值为
ab\cd"ef'g\h]]
并打印出来
6.3 string拼接
字符串和字符串可以相加吗?可以!我们可以用拼接符号来将两个独立的字符串拼起来。
我们使用..来表示字符串拼接符号,如下面的示例代码:
下面你要完成这个任务:
已知三个字符串变量s1、s2、s3
请将他们按顺序拼接起来,存入all,并使用print输出结果
6.4 number转string
上面一节学习了如何拼接字符串,这个方法固然很好用,但是有时候我们会遇到一个需求,那就是把number类型的变量和string类型的变量拼接起来,组成一个新的string
比如下面的变量n和s,如何拼接起来呢?
我们可以直接将number类型的变量n转换成string类型的值,这样就可以拼接了
使用tostring(value)函数即可实现这一操作:
下面你要完成这个任务:
已知三个变量n1、s、n2
然后将他们按顺序拼接起来,存入变量result,使输出结果正确
小提示:在某些情况下,Lua会自动将number类型转换成string类型
6.5 string转number
上面一节学习了如何将number转成string,这一节我们来学习如何将string转成number
比如下面的变量s,存储的内容是一个字符串,但是代表了一个数字,如何转成number再与n相加计算呢?
我们可以直接将string类型的变量s转换成number类型的值,这样就可以计算了
使用tonumber(value)函数即可实现这一操作:
下面你要完成这个任务:
已知三个字符串变量s1、s2、s3,其内容均为纯数字
请计算他们的算术和,赋值给新建的变量result,使下面代码输出正确结果
七、逻辑运算
7.1 布尔型和比较运算
布尔型(boolean)只有两个可选值:true(真) 和 false(假)
Lua 把 false 和 nil 看作是false,其他的都为true(包括0这个值,也是相当于true)
Lua 中也有许多的关系运算符,用于比较大小或比较是否相等,符号及其含义如下表:
我们可以通过以下实例来更加透彻的理解关系运算符的应用:
下面问题来了,运行以下代码,将会输出什么结果?请自行思考
7.2 逻辑运算符
逻辑运算符基于布尔型的值来进行计算,并给出结果,下表列出了 Lua 语言中的常用逻辑运算符:
我们可以通过以下实例来更加透彻的理解逻辑运算符的应用:
下面问题来了,运行以下代码,将会输出什么结果?
7.3 检验大小(自测题)
题目:如果已知number变量n,那么如果需要判断n是否符合下面的条件:
3<n≤10
以下四行判断代码,正确的是?
(返回true即表示变量n符合要求)
八、分支判断
8.1 条件判断
上面一节学习了布尔类型,那么这个需要用到哪里呢?我们需要用它来进行某些判断。
在Lua中,可以使用if语句来进行判断,如下面所举例的代码,可以判断n是否为小于10的数:
我们整理一下,实际上if语句就是如下结构:
下面是你需要完成的事:
已知变量n,请判断n是否为奇数,如果是,请给n的值加上1
如果你觉得有难度,请查看下面的提示:
求出n除以2的余数:n % 2
给n的值加上1:n = n + 1
8.2 多条件判断
上面一节学习了简单的if语句写法,这一节我们来学习多条件分支语句
在Lua中,可以使用if语句来进行判断,同时可以使用else语句,表示多个分支判断
举个例子,比如有一个数字n:
当它大于等于0、小于5时,输出太小,
当它大于等于5、小于10时,输出适中,
当它大于等于10时,输出太大,
那么代码就像如下这样:
注意:else和elseif都是可选的,可有可无,但是end不能省略
下面是你需要完成的事:
已知变量n,请判断n是否为奇数,
如果是,请给n的值加上1
如果不是,请将n的值改为原来的两倍
8.3 判断三角形合法性(自测题)
你需要使用前面几章的知识,来完成下面的题目
已知三个number类型的变量a、b、c,分别代表三根木棒的长度
请判断,使用这三根木棒,是否可以组成一个三角形(两短边之和大于第三边)
如果可以组成,就打印出true
8.4 if的判断依据(自测题)
我们在前面了解到,Lua 把 false 和 nil 看作是false,其他的都为true(包括0这个值,也是相当于true)
那么问题来了,执行下面的代码,将会输出什么?
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。