评论

收藏

for循环(特厉害的MT5/MQL5指标编程教程第十三篇:for循环结构)

avatar 億秒 | 1017 人阅读 | 0 人评论 | 2014-02-18

程序设计的基本结构就三种:顺序结构、选择结构、循环结构,运用这三种语言结构,可以解决所有问题。而顺序结构就像说话一样一句一句往下运行,无处不在,所以在学习程序设计的初级阶段,就是学选择结构和循环结构,无论多么复杂的算法,拆分到最基础的结构,都是选择和重复。


循环结构中用得最多的是for循环,while循环与for循环本质是一样的,但是for循环写循环条件的时候格式位置比较统一,易读性较好。表达形式一般为:


for(表达式1;表达式2;表达式3){
...
}


它的执行过程如下:


求解“表达式1”。
求解“表达式2”,若结果值为“真”,则执行for循环内嵌代码块,然后执行下面第3步;若表达式值为“假”,结束循环,跳到第5步。
求解“表达式3”。
回到上面第2步继续执行。
循环结束。执行for循环后面的语句。
循环举例:


int i;
int sum = 0;
for(i=0; i<3; i++){
sum = sum + i;
}


注意:在循环使用变量“i”和“sum”之前,声明了它们,这样当循环结束后,“i”和“sum”依然存在。也可以:


int sum = 0;
for(int i=0; i<3; i++){
sum = sum + i;
}


这样当循环结束后,“i”就被释放了,节省内存空间,但是“sum”一定要在循环前声明,如果放在循环体内声明,那么相当于每次循环都重新声明变量,应该是会报错的,感兴趣可以自己试试,原理参照变量及其作用域那篇,有点类似函数,但是for循环是一个语言结构,不是函数。


以第二段为例讲解:


声明“sum”并初始化其值为“0”。
进入循环结构,声明“i”并初始化其值为“0”。
“i<3”为真,执行循环体内语句。
执行“sum = sum(0) + i(0);”,“sum”的值为“0”。
循环内嵌语句执行后进行自增运算“i++;”,“i”的值为“1”。
判断,“i<3”为真,执行循环体内语句。
“sum = sum(0) + i(1);”,“sum”的值为“1”。
自增运算“i++;”,“i”的值为“2”。
判断,“i<3”为真,执行循环体内语句。
“sum = sum(1) + i(2);”,“sum”的值为“3”。
自增运算“i++;”,“i”的值为“3”。
判断,“i<3”为假,跳出循环,“i”被释放,“sum”的值为“3”。
向下执行循环以后的语句......
如果给一个比较大的数组赋值,可以:


int a[50];
for(int i=0; i<50; i++){
a = 0;
}


这样从“a[0]”到“a[49]”的值都是“0”,一定要记住一个元素个数为“n”(本例中为“50”个)的数组,角标最大值为“n-1”(本例中为“49”)。

""
还没有人打赏,支持一下