易语言变量教程

图片[1]-易语言变量教程-北笙博客

🎁 第一章:变量——程序的记忆小盒子

1.1 变量是什么?

想象一下,你有一个神奇的魔法盒子,这个盒子有三个超能力:

    • 能贴标签(变量名)

    • 能装东西(存储数据)

    • 能换内容(改变值)

.版本 2

.子程序 魔法盒子演示
    .局部变量 我的宝箱, 文本型  ' 这是盒子标签
    
    ' 往盒子里放宝贝
    我的宝箱 = "金光闪闪的宝剑"
    
    ' 哎,发现更好的宝贝了,换!
    我的宝箱 = "会说话的魔法书"
    
    ' 看看盒子里现在是什么
    信息框 ("我的宝箱里有:" + 我的宝箱, 0, "惊喜", )

 

1.2 为什么要用变量?

假设你要计算圆的面积:

.版本 2

.子程序 不用变量的痛苦
    ' 每次都要重新写3.14
    信息框 ("半径5的圆面积:" + 到文本(3.14 × 5 × 5), 0, , )
    信息框 ("半径10的圆面积:" + 到文本(3.14 × 10 × 10), 0, , )
    ' 老板说π要精确点,你得改所有地方...

.子程序 用变量的爽快
    .局部变量 圆周率, 小数型
    .局部变量 半径1, 整数型
    .局部变量 半径2, 整数型
    
    圆周率 = 3.1415926  ' 一次定义,到处使用
    半径1 = 5
    半径2 = 10
    
    信息框 ("面积1:" + 到文本(圆周率 × 半径1 × 半径1), 0, , )
    信息框 ("面积2:" + 到文本(圆周率 × 半径2 × 半径2), 0, , )
    ' 老板说要更精确?改这一行就行!

🌍 第二章:全局变量——程序里的”广播喇叭”

2.1 什么是全局变量?

想象一下,你在公司里装了个全公司广播

    • 总经理办公室能喊话

    • 财务部能听到

    • 技术部也能听到

    • 厕所都能听到

.版本 2

.程序集 程序集_公司系统
.全局变量 公司公告, 文本型  ' 这就是广播喇叭!

.子程序 _总经理讲话
    公司公告 = "下午3点全员开会!"  ' 总经理发通知
    
.子程序 _财务部收通知
    标签_财务.标题 = "收到通知:" + 公司公告  ' 财务部听到了
    
.子程序 _技术部收通知
    .如果 (公司公告 ≠ "")
        信息框 ("技术部收到:" + 公司公告, 0, , )
    .否则
        信息框 ("还没通知呢", 0, , )
    .如果结束

2.2 全局变量的使用场景

场景1:游戏中的全局状态

.版本 2

.程序集 程序集_游戏
.全局变量 游戏金币, 整数型
.全局变量 玩家血量, 整数型
.全局变量 是否暂停, 逻辑型

.子程序 _开始游戏
    游戏金币 = 1000  ' 初始金币
    玩家血量 = 100   ' 满血
    是否暂停 = 假    ' 游戏运行中
    
.子程序 _打怪掉落
    游戏金币 = 游戏金币 + 50  ' 任何地方都能修改金币
    
.子程序 _受到伤害
    玩家血量 = 玩家血量 - 10  ' 任何地方都能修改血量

⚠️ 警告: 全局变量像公共厕所——谁都能用,但也容易弄脏!要小心使用。

📦 第三章:变量类型——数据的”职业装”

3.1 各种”职业装”介绍

类型比喻能装什么示例
整数型存钱罐只能放整数硬币年龄 = 18
小数型量杯可以精确测量温度 = 36.5
文本型纸条写文字消息名字 = "小明"
逻辑型开关只有开/关是否登录 = 真
字节型小盒子0-255的小数字亮度 = 200

3.2 类型转换的趣事

.版本 2

.子程序 类型转换剧场
    .局部变量 字符串数字, 文本型
    .局部变量 真实数字, 整数型
    .局部变量 结果, 文本型
    
    字符串数字 = "100"  ' 这是"穿着文字外衣"的数字
    
    ' 错误:直接相加会变成拼接
    结果 = 字符串数字 + "50"  ' 结果是"10050"(拼接)
    
    ' 正确:先脱掉文字外衣
    真实数字 = 到整数(字符串数字)  ' 现在变成真正的100
    真实数字 = 真实数字 + 50      ' 结果是150
    
    信息框 ("字符串相加:" + 结果 + #换行符 + "数字相加:" + 到文本(真实数字), 0, "类型区别", )

🎪 第四章:数组——变量的”集体宿舍”

4.1 一维数组:学生的座位表

想象一个教室,有一排座位:

.版本 2

.子程序 安排座位
    .局部变量 学生姓名, 文本型, , "5"  ' 5个座位的教室
    
    ' 安排学生入座(易语言数组从1开始)
    学生姓名[1] = "张三"  ' 第一排第一个
    学生姓名[2] = "李四"  ' 第一排第二个
    学生姓名[3] = "王五"
    学生姓名[4] = "赵六"
    学生姓名[5] = "孙七"
    
    ' 点名!
    .局部变量 座位号, 整数型
    .局部变量 点名册, 文本型
    
    点名册 = ""
    .计次循环首 (5, 座位号)
        点名册 = 点名册 + "座位" + 到文本(座位号) + ":" + 学生姓名[座位号] + #换行符
    .计次循环尾
    
    信息框 (点名册, 0, "课堂点名", )

4.2 二维数组:Excel表格

.版本 2

.子程序 成绩表格
    .局部变量 学生成绩, 整数型, , "3,4"  ' 3行4列的表格
    
    ' 第一行:语数外体育
    学生成绩[1, 1] = 90   ' 学生1语文
    学生成绩[1, 2] = 85   ' 学生1数学
    学生成绩[1, 3] = 88   ' 学生1英语
    学生成绩[1, 4] = 95   ' 学生1体育
    
    ' 第二行
    学生成绩[2, 1] = 78   ' 学生2语文
    学生成绩[2, 2] = 92
    学生成绩[2, 3] = 85
    学生成绩[2, 4] = 88
    
    ' 第三行
    学生成绩[3, 1] = 85
    学生成绩[3, 2] = 76
    学生成绩[3, 3] = 91
    学生成绩[3, 4] = 82
    
    ' 查小明的数学成绩(假设小明是第2个学生)
    信息框 ("小明数学成绩:" + 到文本(学生成绩[2, 2]), 0, "成绩查询", )

4.3 动态数组:可伸缩的停车场

.版本 2

.子程序 智能停车场
    .局部变量 停车位, 文本型, , "0"  ' 开始是空的
    
    ' 来车了,增加车位
    加入成员 (停车位, "京A12345")  ' 第1辆车
    加入成员 (停车位, "京B67890")  ' 第2辆车
    
    信息框 ("现有" + 到文本(取数组成员数(停车位)) + "辆车", 0, , )
    
    ' 又来3辆车
    加入成员 (停车位, "沪C11111")
    加入成员 (停车位, "粤D22222")
    加入成员 (停车位, "川E33333")
    
    信息框 ("现在有" + 到文本(取数组成员数(停车位)) + "辆车了!", 0, , )
    
    ' 第一辆车开走了
    删除成员 (停车位, 1, 1)
    
    信息框 ("开走一辆,还剩" + 到文本(取数组成员数(停车位)) + "辆", 0, , )

🏠 第五章:局部变量

5.1 局部变量的私密性

每个子程序都有自己的私密日记本,别人不能看:

.版本 2

.子程序 小明的日记
    .局部变量 暗恋对象, 文本型  ' 这是小明的秘密
    .局部变量 考试分数, 整数型
    
    暗恋对象 = "小红"
    考试分数 = 59  ' 不及格,不能让爸妈知道!
    
    ' 这个变量只有这个子程序知道
    信息框 ("小明的秘密:" + 暗恋对象 + ",分数:" + 到文本(考试分数), 0, "日记本", )

.子程序 小红的日记
    .局部变量 暗恋对象, 文本型  ' 同名但不同变量!
    
    暗恋对象 = "小刚"  ' 小红喜欢小刚
    
    ' 注意:这里无法访问小明的"暗恋对象"
    ' 下面这行会报错:
    ' 信息框 (小明的暗恋对象, 0, , )  ' 错误!不能看别人日记!

5.2 局部变量的生命周期

.版本 2

.子程序 泡方便面
    .局部变量 倒计时, 整数型
    
    倒计时 = 180  ' 3分钟倒计时开始
    
    .判断循环首 (倒计时 > 0)
        倒计时 = 倒计时 - 1
        延时 (1000)  ' 等1秒
    .判断循环尾
    
    信息框 ("泡面好了!", 0, "美食提醒", )
    
    ' 子程序结束,倒计时变量"死亡"了
    ' 下次再调用这个子程序,会创建一个新的倒计时

.子程序 再泡一碗
    ' 这里看不到上一碗面的倒计时
    ' 每次都是全新的开始!

🏢 第六章:程序集变量——部门内的”共享白板”

6.1 什么是程序集变量?

想象一个部门办公室的白板

    • 部门内所有人都能看到

    • 其他部门看不到

    • 比全局变量(全公司广播)范围小

    • 比局部变量(个人笔记本)范围大

.版本 2

.程序集 程序集_销售部
.程序集变量 本月目标, 整数型      ' 销售部的共享白板
.程序集变量 当前业绩, 整数型
.程序集变量 销售冠军, 文本型

.子程序 _月初设定
    本月目标 = 1000000  ' 100万目标
    当前业绩 = 0
    销售冠军 = ""

.子程序 _小李开单
    当前业绩 = 当前业绩 + 50000  ' 小李签了5万
    .如果 (销售冠军 = "")
        销售冠军 = "小李"
    .如果结束

.子程序 _显示部门状态
    ' 销售部内所有子程序都能看到这些变量
    标签_目标.标题 = "目标:" + 到文本(本月目标)
    标签_业绩.标题 = "当前:" + 到文本(当前业绩)
    标签_冠军.标题 = "冠军:" + 销售冠军

' ============================================
.程序集 程序集_技术部  ' 另一个部门
' 这里完全看不到销售部的"本月目标"等变量
' 就像技术部看不到销售部的白板一样

6.2 程序集变量的实际应用

.版本 2

.程序集 程序集_用户登录模块
.程序集变量 登录用户, 文本型      ' 当前登录用户
.程序集变量 登录时间, 日期时间型  ' 登录时间
.程序集变量 登录次数, 整数型      ' 今日登录次数

.子程序 _用户登录
    .局部变量 输入账号, 文本型
    .局部变量 输入密码, 文本型
    
    输入账号 = 编辑框_账号.内容
    输入密码 = 编辑框_密码.内容
    
    .如果 (验证登录(输入账号, 输入密码))
        登录用户 = 输入账号
        登录时间 = 取现行时间()
        登录次数 = 登录次数 + 1
        
        信息框 ("欢迎回来," + 登录用户 + "!", 0, "登录成功", )
    .否则
        信息框 ("账号或密码错误", 0, "登录失败", )
    .如果结束

.子程序 _显示用户信息
    ' 同一个程序集内,可以访问程序集变量
    .局部变量 在线时长, 整数型
    
    在线时长 = 取时间间隔(取现行时间(), 登录时间, 8)  ' 计算小时
    
    信息框 ("用户:" + 登录用户 + #换行符 + 
           "登录时间:" + 到文本(登录时间) + #换行符 +
           "今日登录次数:" + 到文本(登录次数) + #换行符 +
           "已在线:" + 到文本(在线时长) + "小时", 0, "用户信息", )

🏛️ 第七章:常量——程序的”宪法条文”

7.1 常量的不变性

常量就像国家的宪法

    • 一旦制定,不能随便改

    • 所有人都要遵守

    • 写在程序最前面,高高在上

.版本 2

.常量 圆周率π, "3.141592653589793", , "圆周率,神圣不可修改"
.常量 最大登录尝试, "3", , "最多试3次密码"
.常量 公司名称, "“魔法科技有限公司”", , "公司名不会变"
.常量 是否调试模式, "假", , "发布时改为假"

.子程序 使用常量示例
    .局部变量 半径, 小数型
    .局部变量 圆面积, 小数型
    
    半径 = 10.0
    圆面积 = 圆周率π × 半径 × 半径
    
    ' 正确使用
    信息框 ("半径为10的圆面积是:" + 到文本(圆面积), 0, 公司名称, )
    
    ' 错误尝试(会导致编译错误):
    ' 圆周率π = 3.14  ' 你敢修改宪法?!
    ' 公司名称 = "新公司"  ' 这也不行!

7.2 常量的好处

场景对比:没有常量 vs 使用常量

.版本 2

' 糟糕的写法:魔法数字满天飞
.子程序 计算税收_糟糕版
    .局部变量 收入, 小数型
    .局部变量 税收, 小数型
    
    收入 = 10000
    
    ' 这些0.1、5000是什么?别人看不懂!
    税收 = 收入 × 0.1 + (收入 - 5000) × 0.2
    
    ' 如果税率变了,你得找到所有0.1和0.2...

' 优秀的写法:使用常量
.常量 个税起征点, "5000", , "个人所得税起征点"
.常量 低税率, "0.1", , "低税率档"
.常量 高税率, "0.2", , "高税率档"

.子程序 计算税收_优秀版
    .局部变量 收入, 小数型
    .局部变量 税收, 小数型
    
    收入 = 10000
    
    .如果 (收入 ≤ 到数值(个税起征点))
        税收 = 0
    .否则
        税收 = 到数值(个税起征点) × 到数值(低税率) + 
               (收入 - 到数值(个税起征点)) × 到数值(高税率)
    .如果结束
    
    ' 优点:
    ' 1. 一看就知道5000是起征点
    ' 2. 税率调整只需改常量定义
    ' 3. 代码自解释,不用写注释

🎮 第八章:综合实战

猜数字游戏:

.版本 2

.程序集 程序集_猜数字游戏
.全局变量 游戏总次数, 整数型          ' 全局:统计所有游戏次数
.程序集变量 神秘数字, 整数型          ' 程序集:当前游戏的目标数字
.程序集变量 剩余次数, 整数型          ' 程序集:本轮剩余猜测次数
.常量 最大猜测次数, "10", , "每轮最多猜10次"
.常量 游戏名称, "“猜数字大冒险”", , "游戏名字"

.子程序 __启动窗口_创建完毕
    .局部变量 欢迎语, 文本型          ' 局部:临时欢迎语
    
    游戏总次数 = 0
    欢迎语 = "欢迎玩" + 游戏名称 + "!"
    标签_欢迎.标题 = 欢迎语
    
    开始新游戏()  ' 开始第一轮游戏

.子程序 开始新游戏
    .局部变量 随机种子, 整数型        ' 局部:临时变量
    
    置随机数种子 ()  ' 初始化随机数
    神秘数字 = 取随机数 (1, 100)      ' 生成1-100的随机数
    剩余次数 = 到整数(最大猜测次数)   ' 使用常量
    
    游戏总次数 = 游戏总次数 + 1      ' 全局计数器+1
    
    编辑框_提示.内容 = "新游戏开始!我想了一个1-100的数字,你有" + 
                       最大猜测次数 + "次机会猜中它。"
    编辑框_输入.内容 = ""
    标签_状态.标题 = "第" + 到文本(游戏总次数) + "轮游戏,剩余" + 
                      到文本(剩余次数) + "次机会"

.子程序 _按钮_猜测_被单击
    .局部变量 用户输入, 文本型        ' 局部:用户输入的文本
    .局部变量 用户数字, 整数型        ' 局部:转换后的数字
    
    用户输入 = 编辑框_输入.内容
    
    .如果 (用户输入 = "")
        信息框 ("请输入一个数字!", 0, "提示", )
        返回
    .如果结束
    
    用户数字 = 到整数(用户输入)
    
    .判断开始 (用户数字 < 神秘数字)
        编辑框_提示.内容 = "太小了!再大一点。"
    .判断 (用户数字 > 神秘数字)
        编辑框_提示.内容 = "太大了!再小一点。"
    .默认
        编辑框_提示.内容 = "🎉 恭喜你猜对了!数字就是" + 到文本(神秘数字)
        信息框 ("太棒了!你用" + 到文本(到整数(最大猜测次数) - 剩余次数 + 1) + 
               "次猜中了数字!", 0, "胜利", )
        开始新游戏()  ' 开始新一轮
        返回
    .判断结束
    
    剩余次数 = 剩余次数 - 1
    
    .如果 (剩余次数 ≤ 0)
        编辑框_提示.内容 = "游戏结束!正确答案是:" + 到文本(神秘数字)
        信息框 ("机会用完了,正确答案是" + 到文本(神秘数字), 0, "游戏结束", )
        开始新游戏()
    .否则
        标签_状态.标题 = "剩余" + 到文本(剩余次数) + "次机会"
    .如果结束

.子程序 _按钮_查看统计_被单击
    .局部变量 统计信息, 文本型        ' 局部:临时拼接字符串
    
    统计信息 = "=== 游戏统计 ===" + #换行符
    统计信息 = 统计信息 + "游戏名称:" + 游戏名称 + #换行符
    统计信息 = 统计信息 + "总游戏轮数:" + 到文本(游戏总次数) + #换行符
    统计信息 = 统计信息 + "每轮最多猜测次数:" + 最大猜测次数 + #换行符
    统计信息 = 统计信息 + "当前目标数字:[保密]" + #换行符
    统计信息 = 统计信息 + "当前剩余次数:" + 到文本(剩余次数)
    
    信息框 (统计信息, 0, "统计信息", )

📚 第九章:变量使用最佳实践

9.1 命名规范——给变量起个好名字

.版本 2

' 👍 好的命名(一看就懂)
.局部变量 商品单价, 小数型
.局部变量 是否已付款, 逻辑型
.局部变量 用户邮箱, 文本型
.全局变量 全局配置信息, 文本型, , "0"  ' 数组

' 👎 差的命名(看了想哭)
.局部变量 a, 整数型            ' a是什么鬼?
.局部变量 temp, 文本型        ' temp是温度还是临时?
.局部变量 xxx, 逻辑型         ' 三个叉是什么意思?

9.2 作用域选择原则

选择变量作用域的黄金法则

.版本 2

' 1. 能用局部变量,就不用程序集变量
' 2. 能用程序集变量,就不用全局变量
' 3. 全局变量是最后的选项

.程序集 程序集_示例
.全局变量 全局用户ID, 文本型          ' ⚠️ 谨慎使用:所有地方都能改

.子程序 处理订单
    .局部变量 临时计算器, 整数型      ' ✅ 很好:只在这里用
    
    ' 处理逻辑...
    .局部变量 订单金额, 小数型        ' ✅ 很好:订单相关数据
    
    ' 这里可以访问全局用户ID,但要小心!
    标签_用户.标题 = "用户:" + 全局用户ID

🎉 第十章:总结与记忆口诀

10.1 变量类型全家福

📦 变量容器三兄弟:
   全局变量:公司广播(哪里都能听)
   程序集变量:部门白板(部门内共享)
   局部变量:私密日记(只有自己看)

🔢 数据类型四天王:
   整数型:存钱罐(只放整数)
   小数型:量杯(精确测量)
   文本型:纸条(写文字)
   逻辑型:开关(开或关)

🎪 数组大家庭:
   一维数组:一排座位
   二维数组:Excel表格
   动态数组:伸缩停车场

🏛️ 常量大佬:
   国家宪法(不能修改)
   写在最前(高高在上)
   一改全变(方便统一)

10.2 实战心法

    1. 先思考后编码:先想好需要哪些变量,再动手写

    1. 最小作用域原则:能用局部不用全局

    1. 见名知意:变量名要像说明书

    1. 常量先行:先把固定值定义为常量

    1. 数组妙用:多个同类数据用数组管理

🚀 进阶挑战

试着分析这个代码段,找出所有变量并分类:

.版本 2

.程序集 程序集_商城系统
.全局变量 今日销售额, 小数型
.程序集变量 商品列表, 文本型, , "0"
.常量 增值税率, "0.13", , "增值税率13%"

.子程序 _添加商品
    .局部变量 商品名称, 文本型
    .局部变量 商品价格, 小数型
    
    商品名称 = 编辑框_名称.内容
    商品价格 = 到小数(编辑框_价格.内容)
    
    加入成员(商品列表, 商品名称 + "|" + 到文本(商品价格))
    
    .局部变量 含税价, 小数型
    含税价 = 商品价格 × (1 + 到数值(增值税率))
    
    今日销售额 = 今日销售额 + 含税价


有任何问题请在评论区留言

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容