语法介绍
1、关键字:
**if、else、elseif、end、then
2、逻辑运算符(优先级从上到下,括号可改变优先级):
not:当标签未定义时表达式成立
and:当两侧的标签都定义时,表达式成立
or:当两侧标签有一个定义时,表达式成立
注意,关键字无视大小写。
标签:
命名:
建议以字符串或者下划线开头,字母或者数字下划线组成。不能使用关键字命名,(if、else、elseif、end、then、not、and、or)
状态:
标签只有两种状态,定义或者没定义。
1、举例(C语言),and 使用说明:
定义的标签:juzhu、taishou
/*if junzhu and taishou then*/ // 如果是君主并且是太守
printf("是君主或者是太守");
/*else*`
printf("不是太守也不是君主"); // 表示普通武将
/*end*/
junzhu(君主)、taishou(太守)都定义了,所以条件成立,第一个注释块被打开,else注释被关闭,打印“主公曹操”。**
2、举例(C语言),or 使用说明
定义的标签:taishou
/*if taishou or weiguo then*/
printf("是魏国的或者是太守");
/*else*`
printf("非魏国普通武将");
/*end*/
因为定义了taishou标签,所以只要taishou或者weiguo一个标签定义则表达式成立,所以条件成立,打印“是魏国的或者是太守”。
3、举例(C语言),not 使用说明
定义了标签:taishou
/*if not taishou then*`
printf("不是太守");
/*else*/
printf("是太守");
/*end*/
因为定义了taishou标签,结果为真,not之后,结果为假,所以条件不成立,else注释块被打开,打印“是太守”。
4、优先级提升举例
定义标签:weiguo、junzhu
/*if weiguo and (junzhu or taishou) then*/
printf("魏国的君主或者太守");
/*else*`
printf("非魏国的君主或者太守");
/*end*/
如果去掉括号,那么意思就变成了魏国的君主或者任意国家的太守。所以需要用括号提升表达式优先级。
5、嵌套说明,缩进只是为了更好的观看代码,实际运用中可以不缩进。
定义标签:wuguo、junzhu
/*if weiguo then*`
printf("魏国");
/*elseif wuguo then*/
/*if taishou then*`
printf("周瑜");
/*else*/
printf("孙权");
/*end*/
/*elseif shuguo then*/
/*if junzhu then*/
printf("蜀国");
/*elseif chengxiang then*/
printf("诸葛亮");
/*end*/
/*end*/
因为weiguo没定义,第一个条件表达式不成立,所以关闭,下一个表达式中wuguo定义了,所以表达式被打开,第三个表达式 taishou没定义,关闭注释块,所以输出“孙权”。
6、格式化说明,书写在一行也是没问题的。
定义标签:caocao
string name = /*if caocao then*/"曹操"/*else*/"孙权"/*end*/;
printf("%s\n", name.c_str());
因为定义了caocao,所以表达式成立,曹操被显示。
7、其他语言,譬如lua、python只需将/* */替换成相应的注释块即可,譬如
lua:
local name = --[[if caocao then]]"曹操"--[[else]`"孙权"--[[end]];
print(name);
python:
name = '''if caocao then'''"曹操"'''else''`"孙权"'''end''';
print(name);