MT5,外汇,人工神经网络,编程,EA,简洁之1。9流程结构
【流程结构详解】
一、操作符
语言操作符必须对执行完成任务的一些运算法操作进行描述。程序本身是这样的序列语句。
语句逐个随后以分号分离。
操作符
描述
Compoundoperator{}
花括号{}括起来的一个或者多个任一类型操作符
Expressionoperator(;)
分号(;)结尾的表达式
return操作符
终止当前函数和返回控制访问程序
ifelse假设操作符
需要作出选择时使用
?:假设操作符
ifelse假设操作符的简单类似物
switch选择操作符
控制与表达式值一致的操作符
while循环操作符
执行操作符直到表达式变成错误。每次重复前都要检查表达式。
for循环操作符
执行操作符直到表达式变成错误。每次重复前都要检查表达式。
dowhile循环操作符
执行操作符直到表达式变成错误。每次循环后进行检测。循环主体至少执行一次。
break操作符
终止执行最近的外部操作符,while,dowhile或者for
continue操作符
控制最近的外部循环操作符while,dowhile或者for的起点。
new操作符
创建大小合适的对象以及返回创建对象的描述符。
delete操作符
删除新操作符创建的对象
二、详解与例子
?
格式
(条件)?值1:值2;
例子inta0;
intb0;
intc(ab)?0:1;
结果c0
if
格式if(条件)
{语句;}
else
{语句;}
例子if(x1)
if(y2)
z5;
else
z6;
例子if(xl)
{
if(y2)
z5;
}
else
z6;
例子if(xa)
{
y1;
}
else
if(xb)
{
y2;
z3;
}
else
if(xc)
{
y4;
}
else
Print(ERROR);
例子voidOnStart()
{
inta1;
if((a2)f()true)注意:当(a2)条件不成立时,系统不调用f()
Print();
else
Print();
}
boolf()
{
Print();
return(true);
}
例子if(a1)
Print(a1);
while
格式while(条件)
{
语句;
}
例子while(k条件处理就循环运行em
{
if(IsStopped())
break;退出whlie
。。。
k;
}
do。。while
格式do
{
语句;
}
while(条件);
例子do
{
。。。
i;没有这个操作符会出现一个无限循环!
break;退出do。。while
}
while(icounterFibonacci!IsStopped());
例子计算斐波纳契数列
intcounterFibonacci15;
inti0,first0,second1;
intcurrentFibonacciNumber;
do
{
currentFibonacciNumberfirstsecond;
Print(i,i,currentFibonacciNumber,currentFibonacciNumber);
firstsecond;
secondcurrentFibonacciNumber;
i;没有这个操作符会出现一个无限循环!
}
while(icounterFibonacci!IsStopped());
switch(x)x只能是整数常数,每项都必须有break退出,要不然会一直执行下去
格式switch(整数常数变量名)
{
caseA:
语句;
break;
caseB:
语句;
break;
default:
语句;
}
例子switch(x)x只能是整数常数
{
caseA:
Print(CASEA);
break;
caseB:将执行caseC的语句
caseC:
Print(CASEBorC);
break;
default:
Print(NOTA,BorC);
break;
}
例子stringres;
inti0;
switch(i)i只能是整数常数
{
case1:
resi;
break;
default:
resdefault;
break;
case2:
resi;
break;
case3:
resi;
break;
}
Print(res);
结果
默认
for
格式for(初始化值;条件;改变值)
{
语句;
}
例子for(x1;xstrong7000strong;x)
{
if(IsStopped())mql5程序被令停止操作,IsStopped()返回true
break;退出for
。。。
}
例子
for(x1;xstrong7000strong;x)
{
if(IsStopped())mql5程序被令停止操作,IsStopped()返回true
break;
Print(MathPower(x,2));
}
例子
for(;!IsStopped();)
{
Print(MathPower(x,2));
x;
if(x10)break;
}
例子
mql5程序被令停止操作,IsStopped()返回true
for(i0,jnl;i例子
for(inti0;istrong5strong;i)
{
Print(i);
}
输出:
0hr1hr2hr3hr4tdtrtbody
break与continue
break操作符终止switch,while,dowhile或者for的执行
continue跳入下一次while,dowhile或者for操作符的循环
格式continue;
break;
例子for(inti0;i
{
if(a〔i〕0)
continue;
if(a〔i〕1)
break;
}
例子搜索第一个零元素
for(i0;i
if(array〔i〕0)
break;退出循环(while,dowhile或者for)
例子所有非零元素总和
intfunc(intarray〔〕)
{
intarraysizeArraySize(array);
intsum0;
for(inti0;i
{
if(a〔i〕0)
continue;重新循环(while,dowhile或者for)
suma〔i〕;
}
return(sum);
}