• 【C++ Primer Plus学习记录】for循环


    很多情况下都需要程序执行重复的任务,C++中的for循环可以轻松地完成这种任务。

    我们来从程序清单5.1了解for循环所做的工作,然后讨论它是如何工作的。

    1. //forloop.cpp
    2. #if 1
    3. #include
    4. using namespace std;
    5. int main()
    6. {
    7. int i;
    8. for (i = 0; i < 5; i++)
    9. {
    10. cout << i;
    11. cout << " C++ knows loops.\n";//循环体
    12. }
    13. cout << "C++ knows when to stop.\n";
    14. system("pause");
    15. return 0;
    16. }
    17. #endif

    1.for循环的组成部分

    for循环为执行重复的操作提供了循序渐进的步骤。for循环的具体工作步骤如下:

    (1)设置初始值。

    (2)执行测试,看看循环是否应当继续进行。

    (3)执行循环操作。

    (4)更新用于测试的值。

    其结构为:

    1. for(初始化;测试;更新)
    2. 循环体

    循环只执行一次初始化。

    测试表达式决定循环体是否被执行。通常,这个表达式是关系表达式,即对两个值进行比较。C++并没有将测试的值限制为只能为真或假。可以使用任意表达式,C++将把结果强制转换为bool类型。因此,值为0的表达式将被转换为bool值false,导致循环结束。如果表达式的值非0,则被强制转换为bool值true,循环将继续进行。程序清单5.2通过将表达式i用作测试条件来演示了这一特点。

    1. #if 1
    2. #include
    3. using namespace std;
    4. int main()
    5. {
    6. cout << "Enter the starting countdown value: ";
    7. int limit;
    8. cin >> limit;
    9. int i;
    10. for (i = limit; i; i--)
    11. cout << "i = " << i << endl;
    12. cout << "Done now that i = " << i << endl;
    13. system("pause");
    14. return 0;
    15. }
    16. #endif

    for循环是入口条件循环。这意味着在每轮循环之前,都将计算测试表达式的值,当测试表达式为false时,将不会执行循环体。例如,假设重新运行程序清单5.2中的程序,但将起始值设置为0,则由于测试条件在首次被判定时便为false,循环体将不被执行。这种在循环之前进行检查的方式可避免程序遇到麻烦。

    更新表达式在每轮循环结束时执行,此时循环体已经执行完毕。通常,它用来对跟踪循环轮次的变量的值进行增减。然而,它可以是任何有效的C++表达式,还可以是其他控制表达式。

    1.1表达式和语句

     C++中,每个表达式都有值。通常值是很明显的。

    1. #if 1
    2. #include
    3. using namespace std;
    4. int main()
    5. {
    6. int x;
    7. cout << "The expression x = 100 has the value ";
    8. cout << (x = 100) << endl;
    9. cout << "Now x = " << x << endl;
    10. cout << "The expression x < 3 has the value ";
    11. cout << (x < 3) << endl;
    12. cout << "The expression x > 3 has the value ";
    13. cout << (x > 3) << endl;
    14. cout.setf(ios_base::boolalpha);//调用设置了一个标记,该标记命令cout显示true和false,而不是1和0。
    15. cout << "The expression x < 3 has the value ";
    16. cout << (x < 3) << endl;
    17. cout << "The expression x > 3 has the value ";
    18. cout << (x > 3) << endl;
    19. system("pause");
    20. return 0;
    21. }
    22. #endif

    1.2非表达式和语句

  • 相关阅读:
    C语言:删除字符串的空格
    【二、安装centOS】
    MyBatis的简介和核心的组件(映射器、执行器、SqlSession及其工厂)
    Java框架随笔
    不同层次间的问题
    LeetCode 43. 字符串相乘
    cocoapods 常用命令
    opencv上设置摄像头曝光参数的经验
    【 C++11 】类的新功能
    java中Random的使用
  • 原文地址:https://blog.csdn.net/qq_39072304/article/details/134516095