(第一单元)第5小节:流程控制
在上一节中,我们介绍了3种常见的运算方式:算术运算、条件运算、赋值运算。以及这三种运算方式中出现的运算符号和每种符号的表达方式。
在这些运算方式中,会用到多种运算符的组合来参与运算,用于控制程序的执行流程、实现条件判断和循环功能。本节我们就使用这些运算符来实现基础的运算流程控制。
流程控制 - 控制符:
正确使用运算符控制程序的逻辑和运算流程非常重要。它能帮助我们明确表达条件、控制运算符的优先级和执行步骤,并定义代码块的范围,确保程序按照预期的逻辑执行,具有特定的功能和用途。
常见流程控制运算符号有以下几种:
- 花括号 {}
花括号用于定义代码块:在MQL4语言中,花括号用于定义一个代码块,也称为作用域。通常用于表示条件语句、循环语句和函数的主体。代码块是一组语句的集合,它们作为一个整体对程序的执行起作用。常见的例子是在条件语句(如 if、else)和循环语句(如 for、while)中使用花括号定义代码块。图文案例解析:OnTimer()是一个计时事件函数,整个函数用花括号以代码块的开始位置与结束位置做分界,圈定了函数中的代码为一个完整的局部作用域。
- 小括号 ()
小括号被称为圆括号或者函数调用括号。在这个例子中,OnTimer()函数使用小括号作为函数标志,在函数内部,小括号用于条件 (num!=0) 的表达式,将表达式括起来,以便进行逻辑判断。在 if 语句中,小括号内的表达式的结果将被解释为布尔值,用于确定是否执行代码块。
因此,大括号 {} 用于定义代码块,而小括号 () 用于括起条件表达式。同样,在函数内部出现的花括号又圈定一个完整的局部作用域。而这个作用域是否执行则取决于if的条件判断是否成立。
- 分号 ;
在MQL4编程语言中,分号用于结束语句。它指示一条语句的结束,并告诉编译器或解释器可以开始解析下一条语句。分号在语法上分隔不同的语句,使其成为独立的单元。
在某些情况下,分号可用于分隔多个表达式。例如,可以使用逗号操作符在一行上编写多个表达式,然后使用分号将它们分隔开。这样可以在单个语句中执行多个操作。
流程控制 - 关键字:
在编程中,以下是用于控制运算流程的3种常用关键字:
1 、返回运算(return)
返回运算关键字(return)用于结束当前函数的执行,并将结果返回给函数的调用者。它通常用于函数中,可以在任何位置使用。执行return后,函数将立即停止执行,并将控制权和返回值传递给调用者。返回值可以是一个具体的值、一个变量或者一个表达式的结果。
案例解析:
- void GetTradeStatsMode(int a)
这是一个返回类型为void的函数,意味着它不返回任何值。函数接受一个整数参数a。
函数体中使用了return关键字来提前结束函数的执行。在第一个条件判断中,如果a等于0,则执行return语句,立即结束函数的执行,不再执行后续的代码。
如果a不等于0,则继续执行后续的条件判断和代码块。 - bool CalcSum(int x)
这是一个返回类型为bool的函数,意味着它返回一个布尔值(true或false)作为结果。函数接受一个整数参数x。
在函数体中,根据条件判断,如果x大于0,则执行return true;语句,返回true,表示计算成功(条件成立)。如果x不大于0,则执行return false;语句,返回false,表示计算失败(不成立)。
2 、中断循环(break)
中断循环语句(break)用于终止当前所在的循环结构(如for循环或while循环)。一旦执行到break语句,循环将立即停止执行,并继续执行循环后的代码。通常,break语句与某个条件结合使用,以便在满足条件时提前终止循环。
3 、继续下一次循环(continue)
继续语句(continue)用于跳过当前迭代周期的剩余代码,并开始下一次迭代。当continue语句执行时,循环将立即跳转到下一次迭代的起始点。这通常在某个条件满足时用于跳过循环中的某些操作,而不终止整个循环。
这些关键字和语句对于控制运算流程非常有用。return用于结束函数的执行并返回结果,break用于提前终止循环,而continue用于跳过当前迭代并开始下一次迭代。正确使用这些语句可以使程序按照预期的逻辑进行运算,并具有更好的控制和灵活性。
本节知识点:
- 花括号用于定义或圈定一个代码块,也称为作用域
- 小括号作为函数标志或者表达式
- 分号用于结束语句
- 返回运算(return):用于结束当前函数的执行,并将结果返回给函数的调用者
- 继续语句(continue)用于跳过当前迭代周期的剩余代码,并开始下一次迭代
- 中断循环语句(break)用于终止当前所在的循环结构(如for循环或while循环)