微信扫一扫 分享朋友圈

已有 56 人浏览分享

开启左侧

MQL4基础:控制语句

[复制链接]
56 0
MQL4基础:控制语句
  • 语句块
  • 表达式操作符
  • break 语句
  • continue 语句
  • return 语句
  • if-else 语句
  • switch 语句
  • while 循环语句
  • for 循环语句
    语句描述了完成一项任务的算法操作规则。程序本身就足这样的语句序列。一条条语句之间以分号 ; 分隔。
    一条语句能占一行或多行。二个或更多语句也能书写于同一行上。控制执行顺序的语句(if, if-else,  switch, while和for)可以相互嵌套。
    示例:
    if(Month() == 12)  if(Day() == 31) Print("新年快乐!");语句块一个复合语句(一个语句块)可以由一条语句组成,也可以由大括弧{}括起来的一条或多条任意类型的语句组成。大括弧{}后而不必跟着分号(;)。
    示例:
    if(x==0)  {   Print("无效位置 x=",x);   return;  }表达式操作符任何以分号(;)结束的表达式都被视为是一个操作符。这里罗列了一些表达式操作符的范例:
    赋值运算符:
    Identifier=expression;
    x=3;y=x=3; // 错误赋值运算符在表达式操作符中只限一次使用。
    函数调用运算符:
    Function_name(argument1,…, argumentN);
                 FileClose(file);空运算符
    仅仅只有一个分号(;)组成,用来表示控制语句中无任何语句。
    break 语句break语句可以终止最邻近的switch, while或for语句的执行。Break语句由最近的终止条件语句控制。本语句目的之一就是当满足一定条件时完成循环的执行。
    示例:
    // 搜索第一个零元素for(i=0;icontinue语句控制最邻近的循环语句while或for返回循环开始,接着执行下一次循环。continue 语句与break 语句作用相反。
    示例:
    //  统计数组中非零元素个数int func(int array[])  {   int array_size=ArraySize(array);   int sum=0;   for(int i=0;ireturn语句结束当前函数的执行,返回到调用程序。语句return(expression);结束当前函数的执行并带回函数的结果,其中的表达式必须放在圆括号内,不能使用赋值号。
    示例:
    int CalcSum(int x, int y)  {   return(x+y);  }在函数值的类型定义为void类型时,return 语句后面不能使用表达式:
    void SomeFunction()  {   Print("Hello!");   return;    // 这个语句能删除  }本函数右大括弧 } 表明这个不带表达式的return语句将明确执行。
    if-else 语句如果条件表达式为true,语句序列 operator1 执行,语句序列 operator2 将不执行。如果表达式为false,语句序列 operator2 执行,而语句序列 operator1 不执行。
    if (expression)     operator1else     operator2if 语句的 else 部分可能被省略,因此,如果本语句省略了else 部分,if语句在嵌套时可能会出现歧义。在这种情况下,else 会匹配前而最近的不带 else 部分的 if 语句。
    示例:
    //   else 部分匹配第二个if操作符:  if(x>1)  if(y==2) z=5;  else     z=6;
    //   else 部分匹配第一个if操作符:if(x>l)  {   if(y==2) z=5;  }else        z=6;
    //  if 语句嵌套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中的constant常量值,如果相等,就执行相应的语句块。每个case中constant值必须是一个整数、字符串常量或常量表达式。常量表达式中不能包含变量和函数调用。Switch后而的表达式(expression)必须是整型。
    switch(expression)  {   case constant: operators   case constant: operators     ...   default: operators  }如果没有一个case表达式值等于expression表达式值,将执行default后面的语句块。此处default语句并不是必需的。如果没有一个case常量和expression值一致,而default语句也不没有,那么不会执行任何动作。关键字case及其常量就像标签,即使switch语句带有数个case语句,程序都会按序执行后而所有的语句块,直至遇到break语句为止。
    在编译期间,编译程序将计算常量表达式的值,不允许在一个switch语句内同时存在两个相同的常量值。
    示例:
    switch(x)  {   case 'A':      Print("CASE A");      break;   case 'B':   case 'C':      Print("CASE B or C");      break;   default:      Print("NOT A, B or C");      break;  }while 循环语句如果条件表达式expression值为true,while语句一直执行直至条件表达式变成false。如果条件表达式为false,将跳到下一条语句。
    while(expression)  operator;while语句执行前,表达式expression必须事先定义过。因此,如果表达式值一开始就为false,while语句根本不会执行。
    示例:
    while(k表达式1 (Expression1)定义循环的初始变量,表达式2(Expression2)是循环终止条件。当表达式2 (Expression2)为真(true)的时候,循环体重复执行直至Expression2变为假(false)。如果Expression2变为false,循环将会被中断,并继续执行循环语句的下一条语句。每次循环结束后都会计算表达式3(Expression3),用于改变循环条件。
    for (Expression1; Expression2; Expression3)   operator;for 语句与下面while语句等价:
    Expression1;while(Expression2)  {   operator;   Expression3;  }for 语句中我们可以省略三个表达式中任一部分或全部,但足,其中分号 ; 却不能省略。如果省略了表达式2(expression2),则被视作真值。for(; ;)语句是一个死循环,它相当于while(1)语句。表达式1和表达式3都可以内嵌多个逗号(,)分隔的表达式。
    示例:
    for(x=1;x10) break;  }
    for(i=0,j=n-l;i<n;i++,j--) a=a[j];
    大家在看了小编以上对"MQL4基础:控制语句"的介绍后应该都清楚了吧,希望对大家做单有所帮助。如果大家还想要下载更多有关"MQL4基础:控制语句"的相关EA源码,敬请关注汇探网下载。我们会持续更新交易系统,EA源码。
  • 举报 使用道具

    回复
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    精彩推荐
    热门资讯
    网友晒图
    图文推荐
    • 联系我们
    • 邮箱:1912582076#qq.com(请把#改成@)
    • 电话:400-178-8526
    • QQ客服 1912582076
    • 工作时间:周一至周五(早上9点至下午5:30点)
    • 微信公众平台

    • 客服微信号

    QQ|外汇EA|炒外汇论坛|外汇ea|汇探网 |网站地图

    GMT+8, 2026-3-20 06:57 , Processed in 0.250151 second(s), 29 queries .

    Powered by 汇探网 免责申明:本平台仅提供 外汇ea, 外汇指标模板所有产品及展示信息均由第三方发布提供.|投资有风险,交易需谨慎.

    Copyright © 2014-2023, 汇探网-提供 外汇MT4指标,外汇EA下载,外汇交易系统,外汇开户赠金视频教程,外汇软件工具等.版权所有,复制必究.