CAPL语言设计(3)——流程控制
CAPL语言设计(3)——流程控制
if条件语句
CAPL中的if语句有以下两种形式
if一般格式
if (表达式)语句;
例如:
if (count < 50) count++;
if与else格式
if (表达式)语句1;else语句2;
例如:
if (x < y) min = x; else min = y;
switch语句
在编写程序时,经常会碰到按不同情况分转的多路问题,这时可用嵌套if-else语句来实现,但if-else-if语句使用不方便,而且容易出错。对于这种情况,switch语句成了最便捷的方式。
switch语句格式为:
switch (表达式)
{
case 常量表达式1:语句1;
case 常量表达式2:语句2;
…
case 常量表达式n:语句n;
default:语句n+1;
}
执行switch语句时,将变量逐个与case后的常量进行比较,若与其中一个相等,则执行该常量下的语句,若不与任何一个常量相等,则执行default后面的语句。例如:
switch (component) {
case (1):
getValue (comp_1, value); break;
case (2):
getValue (comp_2, value); break;
default:
write ("error: wrong parameter (%d)", component; stop());
break;
}
while循环语句
CAPL中while循环提供了以下两种格式供用户使用。
while循环的一般形式为:
while (表达式)语句;
while循环表示当条件为真时,便执行语句,知道条件为假才结束循环,并继续执行循环程序外的后续语句。例如:
while (pos < msg.DLC) {
sum_even += msg.byte (pos++);
sum_odd += msg.byte (pos++);
}
do-while循环
do
循环体语句;
while (表达式);
do-while循环与while循环的区别在于:它先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。当有许多语句参加循环时,要用 {
和 }
将这些语句括起来。例如:
do{
sum = sum += array[i];
}while (i < 100 && sum <= 1000);
for循环语句
for循环语句使用最为灵活,不仅可以用于循环次数确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它可以完全取代while语句,它的一般形式为:
for (<初始化>; <条件表达式>; <增量>)语句;
参数说明:
- 初始化:总是一个赋值语句,它用来给循环控制变量赋初值;
- 条件表达式:是一个关系表达式,他决定什么时候退出循环;
- 增量:定义循环控制变量,每循环一次后按什么方式变化。
这三个部分之间用 ;
分开,例如:
for (i = 0; i < 100; i ++) sum += array[i];
上述例子中先给 i
赋初值0,判断 i
是否小于100,若是则执行语句,然后值增加1再重新判断,直到条件为假,即 i
大于等于100时,结束循环。
这里我们需要注意以下几点:
- for循环中语句可以为语句体,但要用
{
和}
将参加循环的语句括起来; - for循环中的“初始化”、“条件表达式”和“增量”都是选择项,即可以省略,但
;
不能省略。
– 省略了初始化,表示不对循环控制变量赋初值;
– 省略了条件表达式,表示不做其他处理时便成为死循环;
– 省略了增量,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。
break语句
break语句通常用在循环语句和switch语句中使用。当break用于开关语句switch中的时候,可使程序跳出switch而执行switch以后的语句,如果没有break语句,则将成为一个死循环而无法退出。
当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句连在一起,即满足条件时便跳出循环。
for (i = 0; i < 100; i ++) {
if (array[i] == 0) continue;
array [i] = 1/array[i];
}
…
all_valid = 1;
len = elCount (is_valid);
for (i = 0; i < len; i ++) {
if (isvalid[i] == 0){
all_valid = 0;
break;
}
}
这里需要强调的是,在多层循环中,一个break语句只向外跳一层。另外,goto语句在CAPL中不被支持,我们需要特别注意。
return语句
CAPL函数的返回值是由函数体中的return语句实现返回的。
return语句的一般格式为:
return 表达式;
return语句一般放在函数体的最后,用于结束函数的执行,返回调用函数。若它带有表达式(该表达式可以用一对小括号括起来),系统会将它转换为在函数头中定义的类型,因而要求表达式的类型与定义中的函数值类型一致。若一个不带表达式的return语句放在函数的最后,则可以省略。
double sqr (double x){
return (x * x);
}
一个函数中可以有多个return语句,但实际运行时只能有一个return语句起作用。
原文地址:https://blog.csdn.net/weixin_43360025/article/details/140561940
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!