Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MQL5从入门到精通【第四章】(一)条件判断语句

MQL5从入门到精通【第四章】(一)条件判断语句

作者头像
程序员小助手
发布于 2020-04-08 03:19:36
发布于 2020-04-08 03:19:36
1.1K04
代码可运行
举报
文章被收录于专栏:程序员小助手程序员小助手
运行总次数:4
代码可运行

# 判断语句

程序的基础功能之一就是做判断。判断语句通过评估条件的真伪作出决定。MQL5中有三个条件判断语句:if - else,三目操作符,和switch - case语句。

## if语句

前面章节其实我们已经介绍过了,程序内最常用。if语句内可包含许多业务逻辑。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bool c = true;
if (c == true){
    Print('yes,true!');
}

上面的语句当然是真的。

说一个语法糖。就是如果if语句内只有一条语句,那连大括号都可以省了。开头给个tab即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bool c = true;

// 换一行写
if(c == true)
    Print('yes,true!');

// 连着写
if(c == true) Print('yes,true!');

效果是一样的。语句以分号结束。这个特性,很多编译型语言都有。每个if少写一对大括号,一个文件能省几十个,一天能省不少时间,几年下来就能大神了!!哈哈~~

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int a = 2;
if(a > 1) Print('yes');
if(a < 3) Print('of course');

这样写,很省心啊。

## else操作符

if语句判断为真执行,那么其他情况呢。条件不成立的其他情况呢?我们也得处理,else字句就是做这个的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bool c = false;

if (c==true) Print('yes');
else Print('no');

看到没有,一个if,一个else,把所有的情况都考虑好了,这叫滴水不漏。复杂点儿的例子。说学生成绩60分以下输出不及格,60-80分输出及格,80-100分,优秀。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
double score = 78.5;
if(score < 60)
    Print('不及格');
else if(score < 80)
    Print('及格');
else
    Print('优秀');

条件自上而下依次执行,遇到条件满足,就执行其中的语句。注意,如果判断条件写的不合适,有可能接连触发好几个哦。

## 三目运算符

为了简化if-else语句,发明了这个语法糖。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bool c = true;
string r = c == true ? 'yes' : 'no';
Print(r); // = yes

也即是?之前是判断条件,如果成立,执行:左边的句子,不成立只有:右边的句子。其实相当于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bool c = true;
string r = '';
if(c==true){
    r = 'yes';
}else{
    r = 'no';
}
Print(r); // = yes

上述两段执行效率一样。只是三木运算符,把变量声明,条件判断,语句赋值这三项,合并到一行执行,在编程风格上简洁了不少。可以加大使用力度。

## 分支语句 switch - case

如果判断情况较多,写一堆if不方面,容易形成一大堆乱糟糟的代码。所以switch-case语句。注意,switch-case也不是最好的结构哦。在最佳实践中,很多有名的github上的高评代码库,if-else用的还是最多。为何?方便维护。switch改起来太费劲了。体验不好。而且处处得break,你不跳出,谁知道他给你执行那一段?oh sh!t。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int x = 1;
switch(x)
{
    case 1:
        Print("x is 1"); // 输出: x is 1
        break;
    case 2:
        Print("x is 2");
        break;
    default:
        Print("x is not 1 or 2");
}

switch语句要求case列举出的是其判断语句的所有可能值,当然还有个default用于处理列举不出来的值。

我们不是写航天代码的,一般控制不了全部的局面,switch用起来就不爽了。所以我个人不推荐。因为你稍不留神,就能写出这些一撸到底的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int x = 1;
switch(x)
{
    case 1:
    case 2:
    case 3:
        Print("x is 1, 2 or 3"); // 输出: x is 1, 2 or 3
        break;
    default:
        Print("x is not 1, 2, or 3");
        break;
}

看见没,case=1,2,3,一次往下走,只要命中一个,都得把case里的语句走一遍,直到break!

大多数时候,if-else工作的很好的,switch-case给你一个额外的选项,多一个实现的方法。下面举例,比如是给出图表周期,分钟数,如果60分钟=1小时,240分钟=4小时,1440分钟=1天等等:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int period = _Period;
string printPeriod;

switch(period)
{
    case 60:
        printPeriod = "H1";
        break;
    case 240:
        printPeriod = "H4";
        break;
    case 1440:
        printPeriod = "D1";
        break;
    default:
        printPeriod = "M" + period;
}

if-else也可以写,无非使用if(period==60)这样的格式依次判断即可,不具体写了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小助手 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
❤️JavaScript系列6部曲:流程控制(万字长文)❤️
🎈 作者:不吃西红柿 🎈 简介:CSDN博客专家🏆、蓝桥签约作者、Python领域优质创作者、「信息技术智库」公号作者✌。技术交流、面试刷题尽管关注咨询我。 01 流程控制 流程控制即代码的执行过程,有三种方式: 1.顺序结构:从上到下,从左到右执行的顺序,就叫做顺序结构 2.分支结构:if语句,if-else语句,if-else if-else if…语句,switch-case语句,三元表达式语句 3.循环结构:while循环,do-while循环,for循环,后期还有一个for-in循环 02 分支语
不吃西红柿
2022/07/29
3860
「基础编程学习」 「PHP7数组详解」:第1章 (5)选择分支结构
以较为熟悉的学习成绩输出为例。60分以下,显示不及格;60-80分以下,显示及格;80-100分以下,显示优秀;100分,显示满分;其他的都是不合格的数据。
程序员小助手
2020/04/08
5310
C语言 第四章 关系、逻辑运算与分支流程控制
张果
2018/01/03
8150
C语言 第四章 关系、逻辑运算与分支流程控制
Scala第四章节
文章目录 Scala第四章节 章节目标 1. 流程控制结构 1.1 概述 1.2 分类 2. 顺序结构 2.1 概述 2.2 代码演示 2.3 思考题 3. 选择结构(if语句) 3.1 概述 3.2 分类 3.3 单分支 3.3.1 格式 3.3.2 执行流程 3.3.3 示例 3.4 双分支 3.4.1 格式 3.4.2 执行流程 3.4.3 示例 3.5 多分支 3.5.1 格式 3.5.2 执行流程 3.5.3 示例 3.6 注意事项 3.7 嵌套分支 3.8 扩展: 块表达式 4.
Maynor
2021/04/09
5650
【Java】判断语句if.....&选择语句switch......
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的
陶然同学
2023/02/27
1.2K0
【Java】判断语句if.....&选择语句switch......
Java|快速掌握java判断语句的用法
判断语句—if语句,是编程语言中用来判断条件是否满足,然后根据判断结果执行操作。Java的判断语句分为三种:单if语句、if...else语句和if... else if...else语句。那么如何快速掌握这三种用法呢?
算法与编程之美
2020/08/17
1.8K0
Java|快速掌握java判断语句的用法
【python系统学习04】条件判断语句
学过 js 的你,看到这个肯定小 case 吧!肯定第一时间得到答案,打印出“1”吧!
xing.org1^
2020/02/13
1.1K0
Python编程 条件判断语句
条件判断是通过一条或多条判断语句的执行结果(True 或者 False)来决定执行的代码块。在
网络豆
2023/10/15
3070
Python编程 条件判断语句
带你走进从零认识JavaScript到精髓(五)JavaScript 分支语句
表达式在javascript中是短语,换行的短语或分号结束的短语就是一行语句。JavaScript 语句向浏览器发出的命令。语句的作用是告诉浏览器该做什么。语句通常使用一个或者多个关键字来完成指定的任务,浏览器会按照编写顺序来执行每条语句。语句大小写敏感。
玖柒的小窝
2021/11/06
4930
Go语言学习系列——条件语句:if-else、switch——【坚果派-红目香薰】
if-else: 1. 条件表达式不需要括号 2. 大括号必须有,且必须在同一行 3. 支持初始化语句 4. 条件必须是布尔值 switch: 1. 不需要break语句 2. 支持多条件匹配 3. 支持无条件表达式的形式 4. fallthrough关键字用于继续执行下一个case 5. case后可以是表达式 6. default可选,位置灵活
红目香薰
2025/03/13
1220
Go语言学习系列——条件语句:if-else、switch——【坚果派-红目香薰】
Java程序设计的基本结构 - 选择结构
使用if-else选择结构时,一个最基本的原则就是一定会有一个判断条件,并且如果出现else一定会有一个与之对应的if。
一头小山猪
2020/04/10
7170
python基础之判断语句
  Python 是一门易于学习、功能强大的编程语言。它提供了高效的高级数据结构,还能简单有效地面向对象编程。Python 优雅的语法和动态类型以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。下面我们来介绍一下简单的if语句、if-else语句、if-elif-else语句和嵌套的if语句的使用方法。
jiankang666
2022/05/13
1.4K0
python基础之判断语句
5.逻辑分支
一. 分支的介绍 分支即if/switch/三目运算符等判断语句 通过分支语句可以控制程序的执行流程 二. if分支语句 和OC中if语句有一定的区别 判断句可以不加() 在Swift的判断句中必须有明确的真假 不再有非0即真 必须有明确的BOOL值 // 演练一: let a = 10 // 错误写法: //if a { // print("a") //} // 正确写法 if a > 9 { print(a) } // 演练二: let score = 87 if score
YungFan
2018/09/28
6030
Python入门教程笔记(二)控制语句
计算机之所以能做很多自动化的任务,因为它可以自己做条件判断,通过条件判断,选择做什么样的逻辑(当然,逻辑是需要我们提前写好的),我们称之为条件分支判断。
Lemon黄
2020/10/10
4580
第三章--第一节:条件判断语句
从这一节开始,我们就进入到了进阶的阶段,这一章是在前一章的基础上进行提高扩展的,从本章开始,我会在每一节的结尾留下作业,大家可以将作业提交到我的邮箱或者直接将作业提交到QQ群的群文件中,我将在QQ群中进行在线点评,以及单独点评。QQ群群号 762714031,邮箱地址: gangzhucoll1990@live.com。 本节主要讲解Python中的条件判断语句,条件判断语句在开发中是经常使用到的,通常我们使用条件判断语句来执行不同的代码段。Python主要的条件语句有: if语句、if…else语句、if…elif语句。再学习完这三种条件判断语句时,我们还会实现 switch语句。
喵叔
2020/09/08
5030
【C语言】判断语句以及分支语句《详细讲解》
简介:除了可以指定在条件为真时候执行某些语句外,还可以执行另外一段代码。在C语言中是利用 else语句完成得,其一般形式如下:
謓泽
2022/12/12
7490
【C语言】判断语句以及分支语句《详细讲解》
【java探索之旅】逻辑控制掌握 顺序结构 分支语句
虽然两种方式都是合法的, 但是 Java 中更推荐使用风格1, { 放在 if / else 同一行. 代码跟紧凑
屿小夏
2024/04/10
1440
Java基础之流程控制
如果是false,就继续判断比较表达式2的值,看是true还是false。
南风
2019/04/22
3790
【03】JAVASE-分支语句【从零开始学JAVA】
Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。
用户4919348
2024/05/25
960
【03】JAVASE-分支语句【从零开始学JAVA】
MQL5从入门到精通【第四章】(二)循环语句
程序中除了条件判断,就属循环用的多。为什么?同样的动作,你做一万次,累不累呀?用个循环,装一个变量,让计算机自己算去。您还别说,计算机就爱这个循环操作,那是他的老本行啊。【CPU执行周期了解下】
程序员小助手
2020/04/08
8650
推荐阅读
相关推荐
❤️JavaScript系列6部曲:流程控制(万字长文)❤️
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验