您需要 登录 才可以下载或查看,没有帐号?注册
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句 。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。循环语句是由循环体及循环的终止条件两部分组成的。要使用循环语句时,必须要确定循环体及条件(布尔表达式)两个重要因素,亦即首要考虑的是:我要重复执行哪些语句,我要重复到什么时候为止!MQL4有两种循环:for循环和while循环。
一、for循环For循环执行代码片段固定的次数。例如:
int j;for(j=0; j j++)Print(j);For循环由for关键字和跟随其后的圆括号和括号中由分号隔开的三个表达式组成:for(j=0; j j++)三个表达式分别是初始化表达式,测试表达式和增量表达式。循环的主体是被执行数次的语句:Print(j);在我们的例子中,循环的主体被执行了15次。注意:for语句后面没有分号,这是因为for语句和for循环的主体一起才能构成一个程序语句。A、 初始化表达式:初始化表达式只在程序开始的时候执行一次,它的目的是给循环变量一个初始值(在我们的例子中是0)你可以在循环外(之前)声明循环变量,就像我们的的例子里:int j;或者你也可以在像下面这样在循环里声明变量:for(int j=0;j j++)上面的两行代码是一样的,除了每个变量的范围。(我们将在变量一课中介绍更多的关于变量声明和范围)第一种声明方式(循环外)使得所有的代码行都可以使用这个变量,第二种声明方式(循环里)只有循环里能使用这个变量。你可以像下面这样,在for循环里声明多个变量,变量之间用逗号分隔:Fro(int i=0,j=0;i j++)print(i);B、 测试表达式:测试表达式是使用关系运算符的关系表达式。它通过评价每一次循环的值来决定循环是继续执行还是停止。如果表达式的结果为真,循环将继续执行;如果表达式的结果为假,那么循环终止。在我们的例子中,只要I 15,循环主体print(i)将一直执行。例子里i的值为:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14。当到达15,控制语句将跳过循环,执行其后的语句。C、 增量表达式:增量表达式把循环变量的值(本例中为i)增加1。它是循环步骤中的最后一步,在初始化循环变量,测试完测试表达式,执行完循环主体之后。下面是for循环的流程图:
像初始表达式一样,在fro循环中你也可以使用多个增量表达式,它们之间用逗号分隔。像下面这样:int i;int j;for(i=0,j=0;i i++,j++)print(i);注意:你只能使用一个测试表达式。另一个需要注意的地方是增量表达式不仅能增加循环变量,还可以减少循环变量。例如:int i;for(i=15;i i--)print(i);上面的例子中,它初始化i的值为15然后开始循环,并每次将其减少1和检查测试表达式(i 0)。程序将给出这些结果:15,14,13,12,11,10,9,8,7,6,5,4,3,2,1。循环主体中的多个语句:在前面的例子里,循环主体中都只有一个语句,但并不总是这样。你可以像下面这样使用大括号({})在循环主体中使用多个语句:For(int i=0;i i++){Print(i);PlaySound(“alert.wav”);}不要忘记在每一个语句后面加上分号。break声明:当关键字break出现在for循环中时(while循环和switch语句也一样),循环的执行将终止,并且跳过循环,执行其后的语句。例如:for(int i=0;i i++){ if(i==10) break; Print(i);}上面的例子中,循环将执行到i=10。在那里,break关键字将终止循环。代码将给出这些数值:0,1,2,3,4,5,6,7,8,9Continue声明:break声明让你跳出循环,continue则让你回到循环的顶部(圆括号内)。例如:for(int i=0;i i++){ if(i==10) continue; Print(i)}上面的例子循环将执行到i=10,在那里continue关键字将使循环回到循环顶部并且不输出i的值。代码将给出这些数值:0,1,2,3,4,5,6,7,8,9,11,12,13,14。提示:你可以省去for循环中的一个或所有表达式,例如:for(;;)这个循环就像while循环,有一个始终被为真的测试表达式。二、while循环for循环通常被用在你知道循环将要被执行多少次的情况下。那如果是你不知道要执行多少次的循环该怎么办呢?这就是while循环。while循环和for循环一样有一个测试表达式,但没有初始化表达式和增量表达式。例如:int i=0;while(i 15){ Print(i); i++;}在这个例子中你应该注意:l 循环变量在循环之前被声明和初始化,你不能想for循环那样,在循环中(圆括号内)对其声明和初始化。l i++在这里不像你想的那样是增量表达式,但是循环体必须包含一些改变循环变量的语句,否则,循环将永远不会停止。while仅包含一个测试表达式,它在每次循环的时候检查。如果表达式为真则循环继续执行。否则,循环终止,并执行其后的语句。在本例中,循环将执行到14,这时i 15为假,循环终止。下面是while循环的流程图:
while循环和for循环的相同点:1、 在它们两个中你都可以使用break声明和continue声明。2、 它们两个都可以在循环主体中用{}括起来使用多个语句。3、 for(;;)等于while(true)。4、
外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!