青少年编程与数学 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
循环重复执行代码直到满足特定条件。此外,还介绍了break
和continue
等循环控制语句的使用方法。这些控制结构是实现复杂程序逻辑的基础,通过它们可以有效控制程序的执行流程。
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;
}
在这个例子中,程序先声明并初始化变量a
和b
,然后计算它们的和并存储在变量sum
中,最后输出结果。整个过程按照代码的顺序依次执行,没有其他复杂的逻辑。
二、选择结构
(一)概念
选择结构允许程序根据条件选择不同的执行路径。C++中有多种选择结构,包括if
语句、if - else
语句、if - else if - else
语句和switch - case
语句。
(二)if语句
-
基本形式
-
if
语句的基本形式是:if (条件) {// 条件为真时执行的语句 }
-
例如:
int score = 85; if (score >= 60) {cout << "Pass" << endl; }
这里条件是
score >= 60
,如果条件为真(即分数大于等于60),则输出“Pass”。
-
-
条件表达式
- 条件表达式可以是关系表达式(如
a > b
)、逻辑表达式(如a > b && c < d
)等。关系运算符有>
、<
、>=
、<=
、==
、!=
,逻辑运算符有&&
(逻辑与)、||
(逻辑或)、!
(逻辑非)。
- 条件表达式可以是关系表达式(如
(三)if - else语句
-
基本形式
-
if - else
语句的形式是:if (条件) {// 条件为真时执行的语句 } else {// 条件为假时执行的语句 }
-
例如:
int score = 55; if (score >= 60) {cout << "Pass" << endl; } else {cout << "Fail" << endl; }
这里如果分数大于等于60,输出“Pass”,否则输出“Fail”。
-
-
嵌套if - else
-
可以在
if
或else
部分嵌套另一个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语句
-
基本形式
-
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
后的常量必须是编译时可知的常量表达式。
-
-
注意事项
- 每个
case
后面的break
语句用于终止switch
语句的执行,防止代码“穿透”到下一个case
。如果省略break
,程序会继续执行下面的case
语句,直到遇到break
或switch
语句结束。 default
部分是可选的,用于处理所有未被case
匹配的情况。
- 每个
三、循环结构
(一)概念
循环结构允许程序重复执行一段代码,直到满足某个条件为止。C++中有三种主要的循环结构:for
循环、while
循环和do - while
循环。
(二)for循环
-
基本形式
-
for
循环是最常用的循环结构之一,其形式是:for (初始化表达式; 循环条件; 更新表达式) {// 循环体 }
-
例如:
for (int i = 0; i < 5; i++) {cout << i << " "; }
这段代码会输出
0 1 2 3 4
。for
循环的三个部分分别是:- 初始化表达式:在循环开始前执行一次,通常用于初始化循环变量(如
int i = 0
)。 - 循环条件:在每次循环开始前进行判断,如果条件为真,则执行循环体;如果条件为假,则退出循环(如
i < 5
)。 - 更新表达式:在每次循环体执行后进行更新,通常用于修改循环变量(如
i++
)。
- 初始化表达式:在循环开始前执行一次,通常用于初始化循环变量(如
-
-
应用场景
-
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循环
-
基本形式
-
while
循环的形式是:while (循环条件) {// 循环体 }
-
例如:
int i = 0; while (i < 5) {cout << i << " ";i++; }
这段代码也会输出
0 1 2 3 4
。while
循环在每次循环开始前检查循环条件,如果条件为真,则执行循环体;如果条件为假,则退出循环。
-
-
应用场景
-
while
循环适用于循环次数不确定的情况。例如,读取输入直到遇到特定条件:int num; cout << "Enter numbers (enter -1 to stop):" << endl; while (cin >> num && num != -1) {cout << "You entered: " << num << endl; }
-
(四)do - while循环
-
基本形式
-
do - while
循环的形式是:do {// 循环体 } while (循环条件);
-
例如:
int i = 0; do {cout << i << " ";i++; } while (i < 5);
这段代码也会输出
0 1 2 3 4
。do - while
循环的特点是循环体至少执行一次,然后在每次循环结束时检查循环条件,如果条件为真,则继续执行循环;如果条件为假,则退出循环。
-
-
应用场景
-
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');
-
(五)循环控制语句
-
break语句
-
break
语句用于终止最近的循环(for
、while
、do - while
)或switch
语句。例如:for (int i = 0; i < 10; i++) {if (i == 5) {break; // 终止循环}cout << i << " "; }
这段代码只会输出
0 1 2 3 4
,当i
等于5时,break
语句终止循环。
-
-
continue语句
-
continue
语句用于跳过当前循环的剩余部分,直接进入下一次循环。例如:for (int i = 0; i < 10; i++) {if (i % 2 == 1) {continue; // 跳过奇数}cout << i << " "; }
这段代码只会输出
0 2 4 6 8
,当i
为奇数时,continue
语句跳过当前循环的剩余部分,直接进入下一次循环。
-
通过这些控制结构,可以实现复杂的程序逻辑,控制程序的执行流程。