文章来源 /123财经导航
作者:william
(第一单元)第6小节:语法结构
逻辑运算是流程控制中最重要的环节,是指根据特定的条件和规则,以及程序中的运算逻辑,决定程序执行的顺序和方式。根据不同的情况进行不同的操作,实现复杂的逻辑和功能。可以统称为称为条件语法结构或条件控制语法结构
有条理的语法结构和流程控制可以帮助程序实现以下目标:
- 选择执行路径:通过条件判断,根据不同的条件选择不同的执行路径,满足特定的需求和条件。
- 循环执行:通过循环结构重复执行一段代码,直到满足特定的条件才停止。循环可以帮助程序处理大量的数据或重复的任务。
- 跳转和中断:程序可以通过跳转语句(如break、continue、return)在特定的条件下提前终止循环或函数的执行,或者跳转到指定的代码位置。实现更复杂的控制逻辑。
- 多分支选择:通过多分支结构(如if-else语句、switch语句),程序可以根据不同的条件划分执行路径,提供更灵活的可扩性。
以下是用于控制运算流程的多种常用逻辑运算方式:
1、 表达式运算
- 表达式运算是指对表达式进行计算和求值的过程。表达式由操作数和运算符组成,通过运算符的运算规则进行求值。
- 表达式运算可以包括算术运算(如加法、减法)、逻辑运算(如与、或)、位运算等。它可以用于计算结果、赋值操作以及条件判断等,是语法结构中最简单的一种运算方式。
2、条件运算
条件运算是根据条件的真假选择不同的运算路径。既条件是否成立执行啥,不成立又执行啥的操作方式,if-else 就是一种常见的条件语法结构,由 if 关键字、条件表达式、代码块和可选的 else 关键字、代码块组成。它通过判断条件的真假,决定执行哪个代码块,处理多个分支。
if else根据条件的多样性堆叠或者嵌套多个if else来处理更复杂的运算。
3、三元运算(上一期知识)
- 三元运算也是一种简洁的条件运算方式,它使用三个操作数来进行条件判断。
语法形式为:条件表达式 ? 表达式1 : 表达式2。
其中,如果条件表达式为真,则返回表达式1的值;如果条件表达式为假,则返回表达式2的值。三元运算经常用于简单的条件判断和赋值操作。下列案例中,首先判断a是否大于0,如果是的话,会把b+a计算后赋值给c;如果a不大于0(也就是小于0或者等于0),那么直接赋值0给c。
4、swith运算
switch运算是一种多分支条件运算方式,它根据给定的表达式的值选择不同的执行路径。将表达式的值与各个case的值进行比较,如果匹配到某个case,则执行相应的代码块。如果没有匹配到任何case,则执行默认代码块(如果有)。switch运算可以有效地处理多个值的条件判断,用于根据表达式的值选择不同的执行路径。优点在于供了一种比多个 if-else 语句更简洁和可读性更高的方式来处理多个可能的条件情况。
- 案例解析:
在 下列switch 语句中,OrderType()此时是一个表达式,其值将与每个 case 语句中的值进行比较。当 OrderType() 的值与某个 case 语句中的常量匹配时,将执行与该 case 语句关联的操作。每个 case 语句后面必须使用 break 关键字来终止该 case 的执行,以避免继续执行后续的 case 语句。
如果 OrderType() 的值与所有的 case 语句不匹配,那么将执行 default 语句中的操作。default 语句是可选的,用于处理没有与任何 case 语句匹配的情况。
但是必须注意:switch 语句只能用于整数类型表达式。
5、循环运算
for 循环和 while 循环在功能上是等价的,它们都可以用于重复执行一段代码。使用上可根据喜好和场景二而定。然而,它们在使用方式和适用场景上稍有一些区别。
- 使用方式:
for 循环在初始化、条件判断和更新操作都在循环结构内部完成,使得代码更加紧凑。
while 循环的初始化和更新操作需要在循环结构之外进行,因此使用时需要更多的代码来控制循环变量。
- 迭代次数的确定:
for 循环通常用于已知迭代次数的情况,因为可以在循环头部明确指定初始值、条件和更新操作。while 循环适用于未知迭代次数的情况,循环的终止条件可以在循环体内部根据需要进行判断。
- 灵活性:
for 循环在设计上更加紧凑,适合处理一些固定次数的迭代任务,例如遍历数组。while 循环在处理复杂逻辑或条件不确定的情况下更加灵活,条件判断可以在循环体内部根据需要进行。
- 注意事项:
1、使用循环运算时,必须严格对循环条件、变量更新、终止条件进行严格控制,以确保循环能够正常终止,避免出现无限循环或者死循环的情况。
for循环:
for 循环是常用的迭代结构,用于重复执行一段代码,直到满足特定的条件才停止。它们的详细结构如下:
- 初始值:在循环开始之前执行的语句,用于初始化循环控制变量
- 条件:每次循环迭代前进行判断的表达式,如果条件为真,继续执行循环体;如果条件为假,跳出循环。
- 更新操作:每次循环迭代后执行的语句,用于更新循环控制变量的值。
- 循环体:在条件为真时重复执行的代码块。**
以下是一个示例,展示了如何使用 for 循环打印从 1 到 5 的数字:
在上述示例中,i 的初始值为 1,每次迭代后通过 i++ 更新 i 的值,循环条件为 i <= 5。在每次迭代中,打印当前 i 的值,然后继续下一次迭代,直到 i 大于 5 时循环结束。
While 循环
while 循环在每次迭代之前先判断条件,如果条件为真,则执行循环体中的代码块。
- 条件:在每次迭代前进行判断的表达式,如果条件为真,继续执行循环体;如果条件为假,跳出循环。
- 循环体:在条件为真时重复执行的代码块。
案例解析:
在上述示例中,i 的初始值为 1,每次迭代后通过 i++ 更新 i 的值。在每次迭代中,打印当前 i 的值,然后继续下一次迭代,直到 i 大于 5 时循环结束。输出结果与使用 for 循环相同:
do-While 循环
除了 while 循环和 for 循环,MQL4 还提供了另一种循环结构,即 do-while 循环(也称为 "do-while" 语句)。do-while 循环与 while 循环有所不同,它在循环体结束后才进行条件判断,这意味着循环体至少会被执行一次。
-
do-while 循环包含了一个循环体和一个条件表达式。
首先,循环体中的代码会被执行一次,然后再对条件表达式进行判断。如果条件表达式为真(非零值),则继续执行循环体,直到条件表达式为假(零值)时循环结束。
-
do-while 循环适用于那些需要至少执行一次循环体的情况,无论条件是否满足。这种循环结构常用于需要先执行一次操作然后检查条件是否满足的场景。
案例解析:
在上述示例中,do-while 循环会执行循环体中的代码至少一次,然后在每次循环结束后检查条件 i < 5 是否满足。只要条件满足,循环会继续执行,打印变量 i 的值并将 i 自增,直到 i 的值达到 5,此时条件不满足,循环结束。
本节知识点:
- 表达式运算:进行加减乘除直接赋值的运算方式
- 条件运算:根据一个或者多个条件嵌套判断的布尔运算
- 三元运算:简单条件运算(AB式条件判断),根据两个不同的的条件执行不同路径
- swith运算:多分支条件运算方式,根据给定的表达式的值选择不同的执行路径
- 循环运算:for循环、While 循环、do-While是三种常用的迭代结构,用于重复执行一段代码