青少年编程与数学 02-010 C++程序设计基础 14课题、控制结构

news/2025/3/3 20:03:03/

青少年编程与数学 02-010 C++程序设计基础 14课题、控制结构

  • 一、顺序结构
      • (一)概念
      • (二)示例
  • 二、选择结构
      • (一)概念
      • (二)if语句
      • (三)if - else语句
      • (四)switch - case语句
  • 三、循环结构
      • (一)概念
      • (二)for循环
      • (三)while循环
      • (四)do - while循环
      • (五)循环控制语句

课题摘要: 本文主要介绍了C++语言的控制结构,包括顺序结构、选择结构和循环结构。顺序结构按代码顺序依次执行语句。选择结构通过if语句、if-else语句、if-else if-else语句和switch-case语句根据条件选择不同的执行路径。循环结构则通过for循环、while循环和do-while循环重复执行代码直到满足特定条件。此外,还介绍了breakcontinue等循环控制语句的使用方法。这些控制结构是实现复杂程序逻辑的基础,通过它们可以有效控制程序的执行流程。


C++语言的控制结构主要包括顺序结构、选择结构和循环结构。这些控制结构是程序设计的基础,通过它们可以实现复杂的程序逻辑。

一、顺序结构

(一)概念

顺序结构是最简单的控制结构,程序按照代码的书写顺序依次执行。在顺序结构中,每一条语句都是一次性顺序执行的,没有分支和循环。

(二)示例

#include <iostream>
using namespace std;int main() {int a = 10;  // 第一条语句,声明变量a并初始化为10int b = 20;  // 第二条语句,声明变量b并初始化为20int sum = a + b;  // 第三条语句,计算a和b的和cout << "The sum is: " << sum << endl;  // 第四条语句,输出结果return 0;
}

在这个例子中,程序先声明并初始化变量ab,然后计算它们的和并存储在变量sum中,最后输出结果。整个过程按照代码的顺序依次执行,没有其他复杂的逻辑。

二、选择结构

(一)概念

选择结构允许程序根据条件选择不同的执行路径。C++中有多种选择结构,包括if语句、if - else语句、if - else if - else语句和switch - case语句。

(二)if语句

  1. 基本形式

    • if语句的基本形式是:

      if (条件) {// 条件为真时执行的语句
      }
      
    • 例如:

      int score = 85;
      if (score >= 60) {cout << "Pass" << endl;
      }
      

      这里条件是score >= 60,如果条件为真(即分数大于等于60),则输出“Pass”。

  2. 条件表达式

    • 条件表达式可以是关系表达式(如a > b)、逻辑表达式(如a > b && c < d)等。关系运算符有><>=<===!=,逻辑运算符有&&(逻辑与)、||(逻辑或)、!(逻辑非)。

(三)if - else语句

  1. 基本形式

    • if - else语句的形式是:

      if (条件) {// 条件为真时执行的语句
      } else {// 条件为假时执行的语句
      }
      
    • 例如:

      int score = 55;
      if (score >= 60) {cout << "Pass" << endl;
      } else {cout << "Fail" << endl;
      }
      

      这里如果分数大于等于60,输出“Pass”,否则输出“Fail”。

  2. 嵌套if - else

    • 可以在ifelse部分嵌套另一个if - else语句。例如:

      int score = 75;
      if (score >= 90) {cout << "A" << endl;
      } else if (score >= 80) {cout << "B" << endl;
      } else if (score >= 70) {cout << "C" << endl;
      } else if (score >= 60) {cout << "D" << endl;
      } else {cout << "F" << endl;
      }
      

      这段代码根据分数的不同范围输出不同的等级。

(四)switch - case语句

  1. 基本形式

    • switch - case语句用于多分支选择,其形式是:

      switch (表达式) {case 常量1:// 与常量1匹配时执行的语句break;case 常量2:// 与常量2匹配时执行的语句break;...default:// 以上所有情况都不匹配时执行的语句
      }
      
    • 例如:

      char grade = 'B';
      switch (grade) {case 'A':cout << "Excellent" << endl;break;case 'B':cout << "Good" << endl;break;case 'C':cout << "Average" << endl;break;case 'D':cout << "Poor" << endl;break;default:cout << "Invalid grade" << endl;
      }
      

      这里根据grade的值输出不同的评价。switch语句中的表达式通常是一个整型或字符型表达式,case后的常量必须是编译时可知的常量表达式。

  2. 注意事项

    • 每个case后面的break语句用于终止switch语句的执行,防止代码“穿透”到下一个case。如果省略break,程序会继续执行下面的case语句,直到遇到breakswitch语句结束。
    • default部分是可选的,用于处理所有未被case匹配的情况。

三、循环结构

(一)概念

循环结构允许程序重复执行一段代码,直到满足某个条件为止。C++中有三种主要的循环结构:for循环、while循环和do - while循环。

(二)for循环

  1. 基本形式

    • for循环是最常用的循环结构之一,其形式是:

      for (初始化表达式; 循环条件; 更新表达式) {// 循环体
      }
      
    • 例如:

      for (int i = 0; i < 5; i++) {cout << i << " ";
      }
      

      这段代码会输出0 1 2 3 4for循环的三个部分分别是:

      • 初始化表达式:在循环开始前执行一次,通常用于初始化循环变量(如int i = 0)。
      • 循环条件:在每次循环开始前进行判断,如果条件为真,则执行循环体;如果条件为假,则退出循环(如i < 5)。
      • 更新表达式:在每次循环体执行后进行更新,通常用于修改循环变量(如i++)。
  2. 应用场景

    • for循环非常适合用于已知循环次数的情况,如遍历数组、集合等。例如,遍历一个数组并输出所有元素:

      int arr[] = {1, 2, 3, 4, 5};
      int n = sizeof(arr) / sizeof(arr[0]);  // 计算数组元素个数
      for (int i = 0; i < n; i++) {cout << arr[i] << " ";
      }
      

(三)while循环

  1. 基本形式

    • while循环的形式是:

      while (循环条件) {// 循环体
      }
      
    • 例如:

      int i = 0;
      while (i < 5) {cout << i << " ";i++;
      }
      

      这段代码也会输出0 1 2 3 4while循环在每次循环开始前检查循环条件,如果条件为真,则执行循环体;如果条件为假,则退出循环。

  2. 应用场景

    • while循环适用于循环次数不确定的情况。例如,读取输入直到遇到特定条件:

      int num;
      cout << "Enter numbers (enter -1 to stop):" << endl;
      while (cin >> num && num != -1) {cout << "You entered: " << num << endl;
      }
      

(四)do - while循环

  1. 基本形式

    • do - while循环的形式是:

      do {// 循环体
      } while (循环条件);
      
    • 例如:

      int i = 0;
      do {cout << i << " ";i++;
      } while (i < 5);
      

      这段代码也会输出0 1 2 3 4do - while循环的特点是循环体至少执行一次,然后在每次循环结束时检查循环条件,如果条件为真,则继续执行循环;如果条件为假,则退出循环。

  2. 应用场景

    • do - while循环适用于需要至少执行一次操作的情况。例如,用户菜单的显示:

      char choice;
      do {cout << "Menu:" << endl;cout << "1. Option 1" << endl;cout << "2. Option 2" << endl;cout << "3. Exit" << endl;cout << "Enter your choice: ";cin >> choice;// 处理用户选择
      } while (choice != '3');
      

(五)循环控制语句

  1. break语句

    • break语句用于终止最近的循环(forwhiledo - while)或switch语句。例如:

      for (int i = 0; i < 10; i++) {if (i == 5) {break;  // 终止循环}cout << i << " ";
      }
      

      这段代码只会输出0 1 2 3 4,当i等于5时,break语句终止循环。

  2. continue语句

    • continue语句用于跳过当前循环的剩余部分,直接进入下一次循环。例如:

      for (int i = 0; i < 10; i++) {if (i % 2 == 1) {continue;  // 跳过奇数}cout << i << " ";
      }
      

      这段代码只会输出0 2 4 6 8,当i为奇数时,continue语句跳过当前循环的剩余部分,直接进入下一次循环。

通过这些控制结构,可以实现复杂的程序逻辑,控制程序的执行流程。


http://www.ppmy.cn/news/1576366.html

相关文章

c# 代码规范

在C#编程中&#xff0c;遵循良好的命名规范是提高代码可读性和可维护性的关键。C# 社区普遍接受一套命名约定&#xff0c;这些约定有助于团队成员之间更好地协作&#xff0c;同时也便于其他开发者阅读和理解你的代码。以下是一些基本的C#命名规范&#xff1a; 在C#编程中&…

Java GC 基础知识快速回顾

目录 一、Java 垃圾回收&#xff08;GC&#xff09;基本概念和重要性分析 &#xff08;一&#xff09; Java 垃圾回收&#xff08;GC&#xff09;基本概念回顾 1.GC 三种常见语义 2.Mutator&#xff1a;应用程序的内存管理角色 3.TLAB&#xff08;线程本地分配缓存&#x…

系统架构设计师—计算机基础篇—系统性能评价

文章目录 性能评价指标主频CPU时钟周期机器周期CPIMIPS 系统性能调整阿姆达尔解决方案性能优化数据库应用系统Web应用系统 性能评估方法评价程序真实程序基准测试程序核心程序小型基准程序合成基准程序 基准测试程序组 评测准确度 性能指标计算机数据库应用系统Web应用系统 性能…

判断按键盘是否好使的开机自启动PowerShell脚本

一、ps1脚本 文件名&#xff1a;KeyboardCheck.ps1 Function WaitForKeyPress($TimeoutInSeconds) {$KeyPressed $false$deadline (Get-Date).AddSeconds($TimeoutInSeconds)# 显示提示信息Write-Host "请在 $TimeoutInSeconds 秒内按下任意键(长时间没有检测到按下按…

动态规划/贪心算法

一、动态规划 动态规划 是一种用于解决优化问题的算法设计技术&#xff0c;尤其适用于具有重叠子问题和最优子结构性质的问题。它通过将复杂问题分解为更简单的子问题&#xff0c;并保存这些子问题的解以避免重复计算&#xff0c;从而提高效率。 动态规划的核心思想 最优子结…

ctfshow刷题笔记—栈溢出—pwn61~pwn64

目录 前言 一、pwn61&#xff08;输出了什么&#xff1f;&#xff09; 二、pwn62&#xff08;短了一点&#xff09; 三、pwn63(又短了一点) 四、pwn64(有时候开启某种保护并不代表这条路不通) 五、一些shellcode 前言 这几道都是与shellcode有关的题&#xff0c;实在是…

【网络安全 | 漏洞挖掘】利用文件上传功能的 IDOR 和 XSS 劫持会话

未经许可,不得转载。 本文涉及漏洞均已修复。 文章目录 前言正文前言 想象这样一个场景:一个专门处理敏感文档的平台,如保险理赔或身份验证系统,却因一个设计疏漏而成为攻击者的“金矿”。在对某个保险门户的文件上传功能进行测试时,我意外发现了一个可导致大规模账户接管…

P8720 [蓝桥杯 2020 省 B2] 平面切分--set、pair

P8720 [蓝桥杯 2020 省 B2] 平面切分--set、pair 题目 分析一、pair1.1pair与vector的区别1.2 两者使用场景两者组合使用 二、set2.1核心特点2.2set的基本操作2.3 set vs unordered_set示例&#xff1a;统计唯一单词数代码 题目 分析 大佬写的很明白&#xff0c;看这儿 我讲讲…