FWScript 条件判断
条件判断结构俗称“if语句”,使用一个条件表达式,然后跟着条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可以不指定的),if语句可以嵌套使用,也就是说if语句后面可以再跟if语句。
- if 语句
- if…else 语句
- if…elseif…else 语句
- switch…case 语句
if 语句
一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。
if 布尔表达式 (如果布尔表达式为真将执行的语句) endif
实例
$a=2 if $a>0 show 变量大于0 endif
if…else 语句
一个 if 语句后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。
if 布尔表达式 /* 如果布尔表达式为真将执行的语句 */ else /* 如果布尔表达式为假将执行的语句 */ endif
实例
$a=0 if $a>0 show 变量大于0 else show 变量小于等于0 endif
if…elseif…else 语句
一个 if 语句后可跟一个可选的 elseif 语句,elseif 语句由一个布尔表达式2后跟一个或多个语句组成,后面可跟一个可选的 else 语句,else 语句在布尔表达式2为假时执行。
if 布尔表达式1 /* 如果布尔表达式1为真将执行的语句 */ elseif 布尔表达式2 /* 如果布尔表达式2为真将执行的语句 */ else /* 如果布尔表达式2为假将执行的语句 */ endif
实例
$a=-2 if $a>0 show 变量大于0 elseif $a==0 show 变量等于0 else show 变量小于0 endif
switch…case 语句
FwScript中的switch语句专门为了编写自动化测试脚本的方便而设计,switch 语句中的单个case允许设置成一个变量值,也可以设置成一个区间。
switch 表达式 case 简单表达式 /* 如果表达式计算结果与简单表达式匹配将执行的语句 */ break case 区间值 /* 如果表达式计算结果在区间值范围内将执行的语句 */ break . . default /* 如果表达式计算结果与case中的表达式都不匹配将执行的语句 */ endswitch
简单表达式可以为一个整数,一个浮点数,一个字符串,或者一个数字变量,数字变量的值可以为数据源。如果是个数据源,则只要前面switch定义的值在数据源第一列中,则为匹配;如果不是数据源,则完全相等则为匹配。
区间值为使用破折号(‘-’)隔开的两个简单表达式,表示如果switch中的表达式的值落在这个区间内,则执行后面的语句。
注意:switch的定义类似于C语言,所有的case是顺序执行的,直至遇到了Break,不像C#在每个case的执行体后必须强制有Break。像大多数语言一样,case可以连着放在一起。为了便于测试用例的自动化脚本的编写,FWCripts在case语句中加入了区间的概念,也加入了数据集合的概念(使用数据源变量)。
实例
$a=4 $b=11 $datasrc=^(10,20,30) switch $a case 1 show 变量等于整数1 break case 1.23 show 变量等于浮点数1.23 break case $b show 变量等于数字变量的值 break case $datasrc show 变量存在于数据源的第一列 break case 3-5 show 变量介于3到5之间 break case "hello" show 变量等于字符串hello break default show 变量不等于以上任何情况 endswitch
注意,FWScript中的switch语言完全针对每个case语句按照if--else的方式执行,因此可以使用变量及区间值。 大多数语言对switch语句有很严格的限制,如不允许使用区间,有的要求必须有Break(如C#),原因是可以在进行代码优化的时候变换成效率非常高的执行代码,也就是说在编译过程中具有很大的代码优化余地。 FWScript则没有这些限制,但代价是没有代码优化的余地,最终执行的效率较低(好在测试脚本的设计执行效率往往是次要的😊)。
<< FWScript 数据源 | FWScript 循环 >> |