【MT4学习】MQL4语言基础语法04--操作符

0
回复
6887
查看
[复制链接]

63

主题

36

回帖

1927

积分

管理员

积分
1927
来源: 2019-7-25 22:54:36 显示全部楼层 |阅读模式
格式和嵌套
格式.一个操作符可以占用一行或者多行,两个或多个操作符可以占用更多的行。
嵌套.执行控制符(if,if-else, switch, while and for)可以进行任意嵌套.

复合操作符
一个复合操作符有一个(一个区段)和由一个或多个任何类型的操作符组成的的附件{}. 每个表达式使用分号作为结束(;)
示例:
if(x==0)
{
x=1; y=2; z=3;
}


表达式操作符
任何以分号(;)结束的表达式都被视为是一个操作符。
Assignment operator.
Identifier=expression;
标识符=表达式;
示例:
x=3;
y=x=3; // 这是错误的

一个操作符中只能有一个表达式。
调用函数操作符
Function_name(argument1,..., argumentN);
函数名称(参数1,...,参数N);
示例:
fclose(file);

空操作符
只有一个分号组成(;).我们用它来表示没有任何表达式的空操作符.

停止操作符
一个break; , 我们将其放在嵌套内的指定位置,用来在指定情况下跳出循环操作.
示例:
// 从0开始搜索数组
for(i=0;i<ARRAY_SIZE;I++)
if((array==0)
break;


继续操作符
一个continue;我们将其放在嵌套内的指定位置,用来在指定情况下跳过接下来的运算,直接跳入下一次的循环。
示例:
//summary of nonzero elements of array
int func(int array[])
{
int array_size=ArraySize(array);
int sum=0;
for(int i=0;i
{
if(a==0) continue;
sum+=a;
}
return(sum);
}


返回操作符
一个return;将需要返回的结果放在return后面的()中。
示例:
return(x+y);


条件操作符if
if (expression)
operator;

如果表达式为真那么执行操作。
示例:
if(a==x)
temp*=3;
temp=MathAbs(temp);


条件操作符if-else
if (expression)
operator1
else
operator2

如果表达式为真那么执行operator1,如果为假执行operator2,else后还可以跟进多个if执行多项选择。详见示例。
示例:
if(x>1)
if(y==2)
z=5;
else
z=6;
if(x>l)
{
if(y==2) z=5;
}
else
{
z=6;
}
// 多项选择
if(x=='a')
{
y=1;
}
else if(x=='b')
{
y=2;
z=3;
}
else if(x=='c')
{
y = 4;
}
else
{
Print("ERROR");
}


选择操作符switch
switch (expression)
{
case constant1: operators; break;
case constant2: operators; break;
...
default: operators; break;
}

当表达式expression的值等于结果之一时,执行其结果下的操作。不管结果如何都将执行default中的操作。
示例:
case3+4: //正确的
case X+Y: //错误的

被选择的结果只可以是常数,不可为变量或表达式。
示例:
switch(x)
{
case 'A':
Print("CASE A\n");
break;
case 'B':
case 'C':
Print("CASE B or C\n");
break;
default:
Print("NOT A, B or C\n");
break;
}


循环操作符while
while (expression)
operator;

只要表达式expression为真就执行操作operator
示例:
while(k<N)
{
y=y*x;
k++;
}


循环操作符for
for (expression1; expression2; expression3)
operator;

用表达式1(expression1)来定义初始变量,当表达式2(expression2)为真的时候执行操作operator,在每次循环结束后执行表达式3(expression3)
用while可以表示为这样:
expression1;
while (expression2)
{
operator;
expression3;
};

示例:
for(x=1;x<=7;x++)
Print(MathPower(x,2));

使用for(;;)可以造成一个死循环如同while(true)一样.
表达式1和表达式3都可以内嵌多个用逗号(,)分割的表达式。
示例:
for(i=0,j=n-l;i<N;I++,J--)
a=a[j];

MT4编程课程.png

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册
关注微信