目录
基本控制结构
顺序结构
C++ 中的基本顺序结构由一系列语句按照编写的顺序依次执行。以下是一些常见的 C++ 顺序结构:
-
变量声明与定义: 在顺序结构中,通常首先进行变量的声明与定义,以确定程序中要使用的变量及其数据类型。
-
输入输出操作: 可以使用输入输出流对象(如
std::cin
和std::cout
)进行用户输入和程序输出,以便与用户交互或显示结果。 -
赋值操作: 通过赋值运算符(
=
)将一个值赋给一个变量,用于初始化变量或修改变量的值。 -
函数调用: 可以根据需要调用函数来执行特定的任务,函数可以在顺序结构中被顺序调用。
-
表达式计算: 可以对变量、常量和运算符进行计算,生成一个新的值,并将其赋给变量或直接使用。
-
控制流转换(分支与循环): 在顺序结构中可以包含条件语句(如
if
、switch
)和循环语句(如for
、while
),以改变程序的执行流程。 -
结束语句: 可以使用
return
语句来结束函数的执行,或使用break
、continue
等语句来退出循环。
下面是一个简单的 C++ 顺序结构示例:
#include <iostream>
int main() {
int num1 = 10;
int num2 = 20;
int sum = num1 + num2;
std::cout << "Sum: " << sum << std::endl;
return 0;
}
在上面的示例中,首先进行了变量的声明与定义,然后计算两个整数的和,并将其赋给 sum
变量。最后,使用输出流对象 std::cout
将结果打印到屏幕上,程序执行完毕后返回 0。
需要注意的是,在顺序结构中,每个语句按照顺序依次执行,并且没有跳转、分支或循环来改变执行顺序。如果需要根据条件或循环来决定执行路径,则需要使用其他控制结构。
选择结构
选择结构是一种程序设计中的基本结构,用于根据条件的真假选择执行不同的代码块。在 C++ 中,常用的选择结构包括 if
语句和 switch
语句。
-
if
语句:if
语句是最常见的选择结构,它根据条件表达式的真假来确定要执行的代码块。if
语句可以有可选的else
从句,用于在条件不满足时执行另一段代码。示例:
int num = 10; if (num > 0) { std::cout << "Number is positive." << std::endl; } else { std::cout << "Number is non-positive." << std::endl; }
-
switch
语句:switch
语句根据一个表达式的值,匹配不同的case
标签,根据匹配结果执行相应的代码块。每个case
标签后面的代码块可以包含多条语句,并且可以有可选的default
标签,用于处理未匹配到任何case
的情况。示例:
int dayOfWeek = 3; switch (dayOfWeek) { case 1: std::cout << "Monday" << std::endl; break; case 2: std::cout << "Tuesday" << std::endl; break; case 3: std::cout << "Wednesday" << std::endl; break; default: std::cout << "Invalid day of week." << std::endl; break; }
需要注意的是,选择结构中的条件表达式的类型必须是布尔类型或可以转换为布尔类型的表达式。在 if
语句中,如果条件表达式的值为真,则执行包含在 if
块中的代码;如果为假,则执行可选的 else
块中的代码。在 switch
语句中,条件表达式的值会与 case
标签进行匹配,匹配成功后执行对应的代码块。如果没有匹配到任何 case
标签,则执行 default
块中的代码。
选择结构使程序能够根据不同的条件执行不同的操作,从而增加了程序的灵活性和可控性。
循环结构
循环结构是一种程序设计中的基本结构,用于重复执行一段代码多次,直到满足特定条件为止。在 C++ 中,常用的循环结构有 for
循环、while
循环和 do-while
循环。
-
for
循环:for
循环是一种在已知循环次数的情况下进行迭代的循环结构。它由三个部分组成:循环变量的初始化、循环条件的判断和每次迭代后循环变量的更新。示例:
for (int i = 0; i < 5; i++) { std::cout << "Iteration: " << i << std::endl; }
-
while
循环:while
循环是一种在未知循环次数的情况下进行迭代的循环结构。它根据循环条件来判断是否继续执行循环体中的代码。示例:
int i = 0; while (i < 5) { std::cout << "Iteration: " << i << std::endl; i++; }
-
do-while
循环:do-while
循环是一种先执行循环体中的代码,然后再根据循环条件判断是否继续进行迭代的循环结构。与while
循环不同的是,do-while
循环至少会执行一次循环体中的代码。示例:
int i = 0; do { std::cout << "Iteration: " << i << std::endl; i++; } while (i < 5);
循环结构使得程序可以重复执行特定的代码块,从而实现对某些操作的批量处理或条件判断。在循环体内部可以使用控制语句(如 break
和 continue
)来控制循环的流程。需要注意的是,在编写循环时要确保循环条件最终可以达到退出循环的状态,以避免死循环的问题。
其他控制语句
除了选择结构和循环结构,C++ 还提供了其他一些控制语句来对程序的执行进行控制。下面介绍一些常见的控制语句:
-
break
语句:break
语句用于在循环结构或switch
结构中立即结束当前的循环或switch
块,并跳出结构体外部继续执行后续代码。示例:
for (int i = 0; i < 5; i++) { if (i == 3) { break; } std::cout << "Iteration: " << i << std::endl; }
-
continue
语句:continue
语句用于在循环结构中跳过当前迭代的剩余代码,直接进行下一次迭代。示例:
for (int i = 0; i < 5; i++) { if (i == 3) { continue; } std::cout << "Iteration: " << i << std::endl; }
-
goto
语句:goto
语句允许将程序的控制无条件地转移到指定的标签处,通常被认为是一种不推荐使用的控制语句,因为它可能导致代码复杂性增加和可读性降低。示例:
goto myLabel; // ... myLabel: std::cout << "Jumped to the label." << std::endl;
请注意,为了保持代码的可读性和可维护性,应谨慎使用 break
、continue
和 goto
语句。在大多数情况下,可以通过合理设计程序的逻辑和使用选择结构和循环结构来避免使用这些语句。