5. 逻辑语句
5.1. 条件表达式
条件表达式返回结果0(假)或1(真),用于逻辑语句的判断,如:
if(条件表达式)
while(条件表达式)
for(赋值表达式; 条件表达式; 赋值表达式)
数值变量条件表达式(支持符号:>, <, ==, !=, >=, <=, &&, ||)
// 正确写法
if (b1.x > b2.x) {} // 关系判断
if (b1.x == 0) {} // 关系判断
if (b1.x > 10 && b1.x <= 100) {} // b1.x大于10且小于等于100才执行{}里面的内容
if (b1.x != 0 || b2.x != 0) {} // b1.x、b2.x其中一个不等于0才执行{}里面的内容
if (b1.x) {} // b1.x不为0才执行{}里面的内容
if (b1.x && b2.x) {} // b1.x 、b2.x都不为0才执行{}里面的内容
if (b1.x || b2.x) {} // b1.x 、b2.x其中一个不为0才执行{}里面的内容
// 错误写法
if (b1.x = 10) {} // 错误!条件表达式不能出现赋值符号
if ((b1.x > 10) && (b1.x <= 100)) {} // 错误!关系运算(> >= < <= == !=)不支持括号优先级
if ((b1.x || b2.x) && (b3.x || b4.x)) {} // 错误!逻辑运算(|| &&)不支持括号优先级
字符串变量条件表达式(支持符号:==, !=, &&, ||)
// 正确写法
if (b1.txt.str == "123") {} // b1.txt.str字符串等于"123"才执行{}里面的内容
if (b1.txt.str != "123") {} // b1.txt.str字符串不等于"123"才执行{}里面的内容
if (b1.txt.str == "123" && b2.txt.str == "456") {} // 两个都相等才执行{}里面的内容
if (b1.txt.str == "123" || b2.txt.str == "456") {} // 有一个相等才执行{}里面的内容
if (b1.txt.str) {} // 如果b1.txt.str字符串内容不为空才执行{}里面的内容
if (b1.txt.str && b2.txt.str) {} // b1.txt.str、b1.txt.str字符串内容都不为空才执行{}里面的内容
if (b1.txt.str || b2.txt.str) {} // b1.txt.str、b1.txt.str字符串内容其中一个不为0才执行{}里面的内容
// 错误写法
if (b1.txt.str = "123") {} // 错误!条件表达式不能出现赋值符号
if (b1.txt.str >= "123") {} // 错误!字符串变量仅支持 == !=
if (b1.txt.str + 2 == "123") {} // 错误!字符串变量不支持 - * / % ()括号 等算术运算
if (b1.txt.str + "123" == "Btn123") {} // 错误!不支持字符串拼接后再做判断
提示
字符串型变量不支持运算后再做逻辑判断,如
if (b1.txt + "123" == "bnt123")是错误的字符串型变量不支持括号嵌套,如
if ((b1.txt.str == "123") || (b2.txt.str == "456"))
5.2. if语句
if语句形式 : if(条件表达式) { }
// 1. if 形式
if (exp1)
{
// exp1结果为真,执行这里面
}
// 2. if else 形式
if (exp1)
{
// exp1结果为真,执行这里面,然后跳到 else {}之后
}
else
{
// exp1结果为假,执行这里面
}
// 3. if else if 形式
if (exp1)
{
// exp1结果为真,执行这里面,然后跳到 else {}之后
}
else if (exp2)
{
// exp1结果为假,且exp2也为真,执行这里面
}
else
{
// exp1\exp2都为假,执行这里面
}
// 4. 嵌套
if (exp1)
{
// 支持随意嵌套 if \ else if
if (exp2)
{
}
else
{
}
}
else
{
// 支持随意嵌套 if \ else if
}
提示
if ()后面必需写花括号”{}”
举例1:
// 定时器调用,实现g1.val在0-360内,循环增加
g1.val += 1;
if(g1.val >= 360)
{
g1.val = 0;
}
举例2:
if (b1.txt.str == "播放")
{
b1.txt.str = "暂停";
}
else if (b1.txt.str == "暂停")
{
b1.txt.str = "播放";
}
else
{
b1.txt.str = "停止";
}
举例3:
if (b1.txt.str == "切换页面")
{
if(b1.x > 100)
{
b1.txt.str = "切换到1页面";
page(1);
}
else
{
b1.txt.str = "切换到2页面"
page(2);
}
}
else if (b1.txt.str == "移动坐标")
{
b1.x += 50;
}
5.3. for语句
for语句 : for(赋值表达式; 条件表达式; 赋值表达式) { }
// 执行一次赋值表达式1,
// 判断条件表达式,结果为真则执行{}里面内容,然后再执行赋值表达式2。一直循环此步骤,直至条件表达式结果为假
// 条件表达式结果为假,跳到{}之后
for(赋值表达式1; 条件表达式; 赋值表达式2)
{
}
提示
for ()后面必需写花括号”{}”
举例1:
int i,j; // 变量定义, 需写在最前面
for (i = 0; i < 10; i++)
{
for (j = 0; j < 10; j++)
{
if (j == 5)
{
b1.x = 100;
prints("b1.x=%d\r\n", b1.x);
}
}
}
5.4. while语句
while语句 : while(条件表达式) { }
// 判断条件表达式,结果为真则执行{}里面内容,一直循环此步骤知道条件表达式结果为假。
// 条件表达式结果为假,跳到{}之后
while(条件表达式)
{
}
提示
while ()后面必需写花括号”{}”
举例1:
int i=0,j=0; // 变量定义, 需写在最前面
while (i < 10)
{
i++;
for (j = 0; j < 10; j++)
{
if (j == 5)
{
b1.x = 100;
prints("b1.x=%d\r\n", b1.x);
}
}
}