【C++ Primer 第五版】 控制流
发布日期:2021-05-15 09:06:55 浏览次数:20 分类:精选文章

本文共 2606 字,大约阅读时间需要 8 分钟。

1 while 语句

while语句用于在满足特定条件时反复执行一段代码,直到条件为假为止。它采用结构简单但功能强大的方式,适合处理不确定次数的循环任务。

结构形式

while语句的结构如下:

while (condition) {  
statement
}
  • 条件判断(condition):决定是否进入循环,若为真则执行循环体。
  • 循环体(statement):每次循环执行的代码,可是多条语句组成的语句块。

典型应用示例

我们用一个简单的程序来计算1到10的数之和,从而理解while循环的实际应用:

#include 
int main() {
int sum = 0, val = 1;
while (val <= 10) {
sum += val;
++val;
}
std::cout << "Sum of 1 to 10 inclusive is " << sum << std::endl;
return 0;
}

执行结果为:

Sum of 1 to 10 inclusive is 55

这个程序通过初始化变量后,根据条件判断(val <= 10)进入循环体,逐步累加1到10的数值,直到退出循环。

实际应用场景

  • 适用于需要处理不确定次数的迭代任务。
  • 而for循环则更适合已知次数的循环,如循环遍历数组或打印固定次数的信息。

while循环练习题解析

  • 练习9:计算50到100的整数的和
    完成以下代码,输出正确的结果:
  • #include 
    int main() {
    int sum = 0, val = 50;
    while (val <= 100) {
    sum += val;
    ++val;
    }
    std::cout << "Sum of numbers from 50 to 100 is " << sum << std::endl;
    return 0;
    }

    解析

    该程序初始化sum为0,val为50,条件判断为val <= 100进入循环。每次循环体内,sum累加当前val的值,并将val递增1。循环执行直至val超过100,最后输出总和。计算结果应为3825。

    1. 练习10:递减运算实现10到0的数字输出
      完成以下代码,输出10到0的整数序列:
    2. #include 
      int main() {
      int val = 10;
      while (val >= 0) {
      std::cout << val << std::endl;
      --val;
      }
      return 0;
      }

      解析

      该代码通过初始化val为10,条件判断为val >= 0进入循环。每次执行循环体时,输出当前的val值,并将val递减1。循环执行直至val小于0结束,实现了从10递减到0输出的功能。

      1. 练习11:读取两个整数并输出所在范围内的所有整数
        完成以下程序,读取两个整数v1和v2,输出v1到v2范围内的所有整数。
      2. #include 
        int main() {
        int v1, v2;
        std::cout << "Please Enter two integers" << std::endl;
        std::cin >> v1 >> v2;
        while (v1 <= v2) {
        std::cout << v1 << std::endl;
        ++v1;
        }
        return 0;
        }

        解析

        程序通过从标准输入读取两个整数v1和v2,其中v1是起始值,v2是终止值。条件判断(v1 <= v2)用于控制循环,逐步输出从v1递增到v2的所有整数。如果v1大于v2,循环将不执行。

        1. for循环
          for循环属于结构化编程中的控制结构,用于执行固定次的迭代操作。其结构包含三部分:
          • 初始化语序:在循环头最左边指定初始化语句。
          • 条件判断语序:紧接着即用于控制循环的条件。
          • increment表达式:自增或其他操作,指定循环的结束条件。

          示例:计算1到10的数之和:

          #include 
          int main() {
          int sum = 0;
          for (int val = 1; val <= 10; ++val) {
          sum += val;
          }
          std::cout << "Sum of 1 to 10 inclusive is " << sum << std::endl;
          return 0;
          }

          解析

          初始化sum为0,已知循环次数为10次。for循环主体由三个部分组成:变量val的初始化、条件判断以及变量递增。循环执行10次,sum最终累加至55。

          for循环的优势

          • 适合已知循环次数的操作,像循环数组元素、输出固定次数信息。
          • 容易读懂,代码结构清晰。

          缺点

          • 若想改变循环次数,需修改for循环头中的初始化语句和条件判断,导致代码不够灵活。

          循环次数不确定的选择

          在代码设计中,当需要执行不确定次的循环任务时,应首选使用while循环。例如,读取用户输入直到结束的循环,for循环则不适合作为 Puppy的选择。

          条件判断与循环控制

          在编写循环控制代码时,需注意以下几点:

          • 条件判断尽可能放在循环头,避免计算过大或不必要。
          • 使用合理的增量或减量操作,防止无限循环。
          • 及时进行代码性能测试,避免重复执行次数过多导致性能下降。

          详细文档

          [.comments]

          ... (Could move the comments section here if needed, but kept in the same structure.) [close comments]


          以上就是对用户提供给的C++学习材料的部分转述和优化,保持了技术准确性并以更自然的方式呈现。

    上一篇:【LeetCode/力扣】1269. 停在原地的方案数
    下一篇:【C++ Primer 第五版】 注释简介

    发表评论

    最新留言

    不错!
    [***.144.177.141]2025年04月17日 19时48分09秒