诚信为本
量力而为
当前位置:峰汇在线 ea编程知识 正文

ea编程中switch语句用法

在C语言中,switch语句可以理解为一种开关语句,通常与case、break、default 结合使用,对程序执行流程进行控制。

当然,switch语句在具体执行环境中,也不是只有单纯的开和关,它也可以是一个嵌套的多分支控制流程。

switch语句的语法结构:

switch(表达式)
{
    case 表达式1:语句A
    case 表达式2:语句B

     ...
    default:语句X
}

这里需要注意,switch()括号内的表达式必须是整数 int 或 uint 类型,而不能是其它类型。

在程序运行上,一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。

在 switch 语句中,如果不需要多个分支重叠的结果,那么每个 case 语句的结尾就需要添加 break 语句,否则将出现多个分支重叠。

在 switch 语句中,不要忽略 default 语句,为了处理错误及检查默认情况,即使程序真的不需要 default 处理,也应该保留此语句:default: break;

在mql语言中,switch 语句也是在很多地方都可以用到的。在实际开发外汇ea编程使用该语句时,需要注意它的一些规则:

  • 原则上,在一个 switch 语句中可以有任意数量的 case 语句。但是在实际开发中,为了程序的可读性与执行效率,应该尽量减少 switch 语句中的 case 语句。
  • case 语句的结构:每个 case 后跟一个比较的值和一个冒号(如:case 0:)。
  • case 后的值的类型必须与 switch()括号中的变量的数据类型相同,也必须是一个常量或字面量,而不能是一个刻意构造的函数变量。
  • 如果被测试的变量等于 case 中的常量时,即执行 case 后面的语句,直到遇到 break 语句为止。
  • 遇到 break 语句时,switch 语句将完全终止,程序运行将直接跳出 switch 去执行它后面的下一行。
  • 如果 case 语句后面不带 break,那么控制流将会继续下一个 case,直到遇到 break 为止,在执行某种开仓或平仓的操作时,可以使用,但如果是输出某种结果,则要考虑到结果的重叠性。

在mql4语言中,订单类型OrderType()一共6个,分别是OP_BUY,OP_SELL,OP_BUYLIMIT,OP_SELLLIMIT,OP_BUYSTOP,OP_SELLSTOP,对应值依次是0、1、2、3、4、5。要输出订单类型,那么我们就可以用switch 语句,参考代码如下:


string Tktype(int type)
{
   switch (type)
   {
   case 0:return("buy");break;
   case 1:return("sell");break;
   case 2:return("buylimit");break;
   case 3:return("selllimit");break;
   case 4:return("buystop");break;
   case 5:return("sellstop");break;
   default:return("");
   }
   return("");
} 
//调用
   int Tk_Type = OrderType();
   Tktype(Tk_Type);
版权所有转载请注明标题及链接:峰汇在线 » ea编程中switch语句用法