首页学院交易策略EA智能交易文章详细

MQL编程时循环结构中break、continue、return和exit的区别

外汇网2021-06-17 09:41:08 192
汇外网 - 全球专业的黄金外汇门户导航行情资讯网站

1. break

break语句的运用场合首要是switch语句和循环结构。在循环结构中运用break语句,假使实施了break语句,那就退出循环,接着实施循环结构下面的第一条语句。假使在多重嵌套循环中运用break语句,当实施break语句的时机,退出的是它所处的循环结构,对外层循环没有任何影响。假使循环结构里有switch语句,而且在switch语句中运用了break语句,当实施switch语句中的break语句时,仅退出switch语句,不会退出外面的循环结构。通过图3-17,读者可以很直观地了解break语句的运用。

break语句

2. continue

continue语句是这5种终结循环的方式中最特殊的,由于它并没有真的退出循环,而是只终结此次循环体的实施,所以在运用continue的时机要注意这一点。图3-18为各种循环结构中continue语句的运用。

在for循环中,首先实施表达式1(注意表达式1在整个循环中仅实施一次),接着实施表达式2,假使满足条件,那么实施循环体,假使在循环体中实施了continue语句,那就跳转到表达式3处实施,接下执行下一次循环,实施表达式2,看能否满足条件;在while循环中,假使实施了continue语句,那就直接跳转到表达式处,开始下一次的循环分析;在do while循环体中假使实施了continue语句,那就跳转到表达式处执行下一次的循环分析,这一点前面已经验证过了。

continue语句

3. return语句

假使在程序中遇到return语句,那么代码就退出该函数的实施,返回到函数的调用处,假使是main()函数,那么终结整个程序的运行。图3-20为return语句的运用。

return语句

假使是在自定义的函数中实施,那么实施return之后就返回到函数的调用处继续向下实施。

4. exit()函数

exit()函数与return语句的最大区别在于,调用exit()函数将令终结目前进度,同期删除子进度所占用的内存空间,把返回信息传给父进度。当exit()中的参数为0时,表明正常退出,其余返回值表明非正常退出,实施exit()函数代表着进度终结;而return仅表明调用堆栈的返回,其作用是返回函数值,而且退出目前实施的函数体,返回到函数的调用处,在main()函数中, return n和exit(n)是等价的。图3-21为exit()函数的运用。

接下去通过两段代码对return语句和exit()函数执行简单的对比,先来说return语句的运用。

#include

#include

int print()

{

int n;

n = 0;

printf("运用return来终结循环n");

while(1)

{

if(9==n)

return n;

n++;

}

return 0;

}

void main(void)

{

int ret;

printf("调用print()函数以前n");

ret = print();

printf("print()函数的返回值ret=%dn",ret);

printf("调用print()函数之后n");

return ;

}

运行结果:

调用print()函数以前

运用return来终结循环

print()函数的返回值ret=9

调用print()函数之后

exit( )函数

在上面的代码中,用return语句来退出while死循环,在main()函数中print()函数的调用处将返回值赋给ret,打印输出后可以目睹运用return语句成功地返回了9。

下面来说exit()函数的运用。

#include

#include

void print()

{

int n;

n = 0;

printf("运用exit来终结循环n");

while(1)

{

if(9==n)

exit(1);

n++;

}

return ;

}

void main(void)

{

int ret;

printf("调用print()函数以前n");

print();

printf("调用print()函数之后n");

return ;

}

运行结果:

调用print()函数以前

运用return来终结循环

从以上代码可以看出,假使实施exit()函数后能够返回到main()函数的调用处,那么可以打印出接下去的信息“调用print()函数之后”,但是运行结果显示在调用exit()函数之后没有任何输出,所以实施exit()函数之后将直接终结整个程序的运行。

标签:

随机快审展示
加入快审,优先展示

加入VIP