: | : | :期货量化学习 | :期货量化 |
返回列表 发帖

C++程序化/量化学习视频教程系列 第020节:C语言知识点之C++ 判断语句(? : 运算符、if 语句、if...else 语句、switch 语句)知识及C++量化开发中的注意事项【C++量化开发知识点系列】

C++程序化/量化学习视频教程系列 第020节:C语言知识点之C++ 判断语句(? : 运算符、if 语句、if...else 语句、switch 语句)知识及C++量化开发中的注意事项【C++量化开发知识点系列】

C++程序化/量化学习视频教程系列 第020节:C语言知识点之C++ 判断语句(? : 运算符、if 语句、if...else 语句、switch 语句)知识及C++量化开发中的注意事项【C++量化开发知识点系列】



C++程序化学习视频教程系列安排如下:
第一楼:教学视频。一般控制在15分钟左右;
第二椄:视频课程中使用的程式源码。
第三楼:视频教学中需要用到的一些文档或资源。
第四楼:其它的一些边角料,特别是一些经典程序化策略的回测类的部分会放到下面楼层里面。

参与模式如下:
1、希望参与到编写策略与调试方面的工作通过上面的联系方式联系管理员咨询即可。记的加群,有问题第一时间交流,也可以在论坛指定版发贴交流,专用版地址:http://www.qhlt.cn/forum-244-1.html
2、有意申请试用及绑定期货账户跑实盘网友可以联系管理员,以及开通的方式。
3、基于C++策略交易软件具有:1、软件小(50兆不到);2、效率高(C++语言);3、功能精(专注于策略);4、对服务噐或电脑兼容性好(WIN系统)等优势,特别适合长期跑程序化的客户朋友,特别是有稳定交易模式客户更适合使用C++构建的交易系统。
4、最全的C++期货程序化(量化)教程、视频、源码、课件、资源汇总贴【C++期货程序化/量化研究必备资源贴!】:http://www.qhlt.cn/thread-160231-1-1.html
5、鼎元C++量化程式码技术指标源码C++版模板【建议在test.h和test.cpp中同步至最新,方便统一调用和使用,一次编辑多次使用!】:http://www.qhlt.cn/thread-160230-1-1.html
6、如何使用鼎元C++量化软件以及需要准备的些什么?[C++量化入门必读!]:http://www.qhlt.cn/thread-160415-1-1.html

联系方式:
C++微信群:  QQ群: 管理员微信:;管理员QQ:

论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
 
期货论坛 - 版权/免责声明   1.本站发布源码(包括函数、指标、策略等)均属开放源码,用意在于让使用者学习程序化语法撰写,使用者可以任意修改语法內容并调整参数。仅限用于个人学习使用,请勿转载、滥用,严禁私自连接实盘账户交易
  2.本站发布资讯(包括文章、视频、历史记录、教材、评论、资讯、交易方案等)均系转载自网络主流媒体,内容仅为作者当日个人观点,本网转载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网不对该类信息或数据做任何保证。不对您构成任何投资建议,不能依靠信息而取代自身独立判断,不对因使用本篇文章所诉信息或观点等导致的损失承担任何责任。
  3.本站发布资源(包括书籍、杂志、文档、软件等)均从互联网搜索而来,仅供个人免费交流学习,不可用作商业用途,本站不对显示的内容承担任何责任。请在下载后24小时内删除。如果喜欢,请购买正版,谢谢合作!
  4.龙听期货论坛原创文章属本网版权作品,转载须注明来源“龙听期货论坛”,违者本网将保留追究其相关法律责任的权力。本论坛除发布原创文章外,亦致力于优秀财经文章的交流分享,部分文章推送时若未能及时与原作者取得联系并涉及版权问题时,请及时联系删除。联系方式:http://www.qhlt.cn/thread-262-1-1.html
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。

下面是大多数编程语言中典型的判断结构的一般形式:、

C++ 中的判断语句

如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

TOP

? : 运算符

我们已经在前面的章节中讲解了 条件运算符 ? :,可以用来替代 if...else 语句。它的一般形式如下:
  1. Exp1 ? Exp2 : Exp3;
复制代码
其中,Exp1、Exp2 和 Exp3 是表达式。请注意,冒号的使用和位置。

? 表达式的值是由 Exp1 决定的。如果 Exp1 为真,则计算 Exp2 的值,结果即为整个 ? 表达式的值。如果 Exp1 为假,则计算 Exp3 的值,结果即为整个 ? 表达式的值。
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

TOP

C++ if 语句

一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。

语法

C++ 中 if 语句的语法:
  1. if(boolean_expression)
  2. {
  3.    // 如果布尔表达式为真将执行的语句
  4. }
复制代码
如果布尔表达式为 true,则 if 语句内的代码块将被执行。如果布尔表达式为 false,则 if 语句结束后的第一组代码(闭括号后)将被执行。

C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。

流程图

  1. #include <iostream>
  2. using namespace std;

  3. int main ()
  4. {
  5.    // 局部变量声明
  6.    int a = 10;

  7.    // 使用 if 语句检查布尔条件
  8.    if( a < 20 )
  9.    {
  10.        // 如果条件为真,则输出下面的语句
  11.        cout << "a 小于 20" << endl;
  12.    }
  13.    cout << "a 的值是 " << a << endl;

  14.    return 0;
  15. }
复制代码
当上面的代码被编译和执行时,它会产生下列结果:

a 小于 20
a 的值是 10
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

TOP

C++ if...else 语句

个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。

语法

C++ 中 if...else 语句的语法:
  1. if(boolean_expression)
  2. {
  3.    // 如果布尔表达式为真将执行的语句
  4. }
  5. else
  6. {
  7.    // 如果布尔表达式为假将执行的语句
  8. }
复制代码
如果布尔表达式为 true,则执行 if 块内的代码。如果布尔表达式为 false,则执行 else 块内的代码。

流程图

  1. #include <iostream>
  2. using namespace std;

  3. int main ()
  4. {
  5.    // 局部变量声明
  6.    int a = 100;

  7.    // 检查布尔条件
  8.    if( a < 20 )
  9.    {
  10.        // 如果条件为真,则输出下面的语句
  11.        cout << "a 小于 20" << endl;
  12.    }
  13.    else
  14.    {
  15.        // 如果条件为假,则输出下面的语句
  16.        cout << "a 大于 20" << endl;
  17.    }
  18.    cout << "a 的值是 " << a << endl;

  19.    return 0;
  20. }
复制代码
当上面的代码被编译和执行时,它会产生下列结果:

a 大于 20
a 的值是 100

if...else if...else 语句

一个 if 语句后可跟一个可选的 else if...else 语句,这可用于测试多种条件。

当使用 if...else if...else 语句时,以下几点需要注意:

    一个 if 后可跟零个或一个 else,else 必须在所有 else if 之后。
    一个 if 后可跟零个或多个 else if,else if 必须在 else 之前。
    一旦某个 else if 匹配成功,其他的 else if 或 else 将不会被测试。

语法

C++ 中的 if...else if...else 语句的语法:
  1. if(boolean_expression 1)
  2. {
  3.    // 当布尔表达式 1 为真时执行
  4. }
  5. else if( boolean_expression 2)
  6. {
  7.    // 当布尔表达式 2 为真时执行
  8. }
  9. else if( boolean_expression 3)
  10. {
  11.    // 当布尔表达式 3 为真时执行
  12. }
  13. else
  14. {
  15.    // 当上面条件都不为真时执行
  16. }
复制代码
  1. #include <iostream>
  2. using namespace std;

  3. int main ()
  4. {
  5.    // 局部变量声明
  6.    int a = 100;

  7.    // 检查布尔条件
  8.    if( a == 10 )
  9.    {
  10.        // 如果 if 条件为真,则输出下面的语句
  11.        cout << "a 的值是 10" << endl;
  12.    }
  13.    else if( a == 20 )
  14.    {
  15.        // 如果 else if 条件为真,则输出下面的语句
  16.        cout << "a 的值是 20" << endl;
  17.    }
  18.    else if( a == 30 )
  19.    {
  20.        // 如果 else if 条件为真,则输出下面的语句
  21.        cout << "a 的值是 30" << endl;
  22.    }
  23.    else
  24.    {
  25.        // 如果上面条件都不为真,则输出下面的语句
  26.        cout << "没有匹配的值" << endl;
  27.    }
  28.    cout << "a 的准确值是 " << a << endl;

  29.    return 0;
  30. }
复制代码
当上面的代码被编译和执行时,它会产生下列结果:

没有匹配的值
a 的准确值是 100
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

TOP

C++ switch 语句

在 C++ 中,switch 语句用于基于不同的条件执行不同的代码块,它通常用来替代一系列的 if-else 语句,使代码更清晰和易读。

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

C++ 中 switch 语句的语法:
  1. switch(expression){
  2.     case constant-expression  :
  3.        statement(s);
  4.        break; // 可选的
  5.     case constant-expression  :
  6.        statement(s);
  7.        break; // 可选的
  8.   
  9.     // 您可以有任意数量的 case 语句
  10.     default : // 可选的
  11.        statement(s);
  12. }
复制代码
switch 语句必须遵循下面的规则:

    switch 语句中的 expression 必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型。
    在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
    case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。
    当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
    当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
    不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。
    一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。

  1. #include <iostream>

  2. int main() {
  3.     int day = 4;

  4.     switch (day) {
  5.         case 1:
  6.             std::cout << "Monday" << std::endl;
  7.             break;
  8.         case 2:
  9.             std::cout << "Tuesday" << std::endl;
  10.             break;
  11.         case 3:
  12.             std::cout << "Wednesday" << std::endl;
  13.             break;
  14.         case 4:
  15.             std::cout << "Thursday" << std::endl;
  16.             break;
  17.         case 5:
  18.             std::cout << "Friday" << std::endl;
  19.             break;
  20.         case 6:
  21.             std::cout << "Saturday" << std::endl;
  22.             break;
  23.         case 7:
  24.             std::cout << "Sunday" << std::endl;
  25.             break;
  26.         default:
  27.             std::cout << "Invalid day" << std::endl;
  28.     }

  29.     return 0;
  30. }
复制代码
当上面的代码被编译和执行时,它会产生下列结果:

Thursday

switch 语句中的 char 类型:
实例 2
  1. #include <iostream>
  2. using namespace std;

  3. int main ()
  4. {
  5.    // 局部变量声明
  6.    char grade = 'D';

  7.    switch(grade)
  8.    {
  9.    case 'A' :
  10.       cout << "很棒!" << endl;
  11.       break;
  12.    case 'B' :
  13.    case 'C' :
  14.       cout << "做得好" << endl;
  15.       break;
  16.    case 'D' :
  17.       cout << "您通过了" << endl;
  18.       break;
  19.    case 'F' :
  20.       cout << "最好再试一下" << endl;
  21.       break;
  22.    default :
  23.       cout << "无效的成绩" << endl;
  24.    }
  25.    cout << "您的成绩是 " << grade << endl;

  26.    return 0;
  27. }
复制代码
当上面的代码被编译和执行时,它会产生下列结果:

您通过了
您的成绩是 D

注意事项:

    break 语句: 每个 case 语句末尾的 break 语句是必要的,用于跳出 switch 语句。如果缺少 break,程序将继续执行下一个 case,这叫做"贯穿"。
    default 语句: default 语句是可选的,但通常在所有 case 都不匹配时使用,处理所有未列出的情况。
    表达式类型: switch 表达式通常是整数类型或枚举类型,浮点数和字符串类型是不可行的。

有时我们可能会有意使用贯穿,以下代码,如果 number 是 2 或 3,将会执行相同的代码块。
  1. #include <iostream>

  2. int main() {
  3.     int number = 2;

  4.     switch (number) {
  5.         case 1:
  6.             std::cout << "Number is 1" << std::endl;
  7.             break;
  8.         case 2:
  9.         case 3:
  10.             std::cout << "Number is 2 or 3" << std::endl;
  11.             break;
  12.         default:
  13.             std::cout << "Number is not 1, 2, or 3" << std::endl;
  14.     }

  15.     return 0;
  16. }
复制代码
当上面的代码被编译和执行时,它会产生下列结果:

Number is 2 or 3
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

TOP

返回列表