问题引入
我们在程序中使用const或者#define定义整型常量,当整型常量有多个且之间的值全部或部分有递加的时候,定义起来稍显繁琐。
用const定义的常量:
const int鼠=1;
const int牛=2;
const int虎=3;
const int兔=4;
用#define定义的常量:
#define鼠1
#define牛2
#define虎3
#define兔4
在这种情况下,我们用枚举显得很简洁。
枚举定义
是一种派生数据类型,它是由用户定义的若干枚举常量的集合。
格式
enum {};
举例1
#property script_show_inputs //脚本拖入显示对话框
enum ShengXiao //定义一个生肖的枚举类型,鼠对应整数,后面一次类推
{鼠,牛,虎,兔,龙,蛇,马,羊,猴,鸡,狗,猪};
input ShengXiao选择=猪; //定义枚举变量“选择”,并赋初值“猪”
从执行结果可以看出当我们给“选择”赋了初值,在对话框中默认就是我们的初值。用枚举进行选择,可以和switch语句共同完成更复杂的操作。
举例2
#property script_show_inputs
enum ShengXiao{鼠,牛,虎,兔,龙,蛇,马,羊,猴,鸡,狗,猪};
input ShengXiao选择=猪;
void OnStart()
{
switch(选择)
{
case 0: Print("鼠年快乐"); break;
case 1: Print("牛年快乐"); break;
case 2: Print("虎年快乐"); break;
case 11: Print("猪年快乐"); break;
default: Print("你的选择是错误的"); break;
}
}
当我们选择猪年,对应的整数是11,switch语句里面找到11,输出“猪年快乐”。在我们后期的程序编写当中,比如做一个开关或者是K线形态下拉选择等等都可以用到枚举类型。
暗中观察
默默关注
领取专属 10元无门槛券
私享最新 技术干货