目录
前言
一、C++语句
二、顺序结构
1.声明语句
2.表达式语句
3.基本输入/输出语句
4.复合语句和空语句
三、选择结构
1.if语句
2.switch语句
四、循环结构
1.for语句
2.while语句
3.do...while语句
4.循环的嵌套
五、跳转语句
前言
这篇文章介绍一下C++中的基本控制语句
。
一、C++语句
在C++中,语句是构成程序的基本单位,用于执行特定的操作。
二、顺序结构
1.声明语句
声明语句:声明语句用于声明变量、函数、类等标识符。
int x;
void func();
class MyClass;
2.表达式语句
表达式语句执行一个表达式,并且以分号结尾。
x = 10;
cout << "Hello, World!";
3.基本输入/输出语句
输出语句:使用 cout
对象可以将数据输出到标准输出流(通常是显示器)上
cout << "Hello, World!" << endl;
输入语句:使用 cin
对象可以从标准输入流(通常是键盘)读取数据。
int x;
cout << "Enter a number: ";
cin >> x;
4.复合语句和空语句
空语句:空语句不执行任何操作,只包含一个分号。通常用于语法要求的位置或者占位符
;
复合语句(也称为块语句)是一组语句的序列,它们被包裹在花括号 {}
中,并被视为一个独立的语句单元。在 C++ 中,复合语句允许将多个语句组合在一起,并在需要单个语句的地方使用。
#include <iostream>
using namespace std;int main() {int x = 5;{int y = 10;cout << "Inside inner block: x = " << x << ", y = " << y << endl;} // y的作用域在这里结束// y在这里不可见cout << "Outside inner block: x = " << x << endl;return 0;
}
三、选择结构
1.if语句
C++ 中最基本和常用的控制流语句之一,用于根据条件选择执行不同的代码块。if
语句的基本语法如下:
if (condition) {
// 在条件为真时执行的代码块
}
如果 condition
的值为真(非零),则执行 if
语句后面的代码块;如果 condition
的值为假(零),则跳过 if
语句后面的代码块,继续执行程序的下一条语句。
if
语句还可以与 else
配合使用,形成 if-else
结构,用于在条件为假时执行另一段代码块。if-else
语句的语法如下:
if (condition) {
// 在条件为真时执行的代码块
} else {
// 在条件为假时执行的代码块
}
下面是一个示例,演示了 if
和 if-else
语句的用法:
#include <iostream>
using namespace std;int main() {int x = 10;// 简单的if语句if (x > 5) {cout << "x is greater than 5" << endl;}// 带有else的if语句if (x > 20) {cout << "x is greater than 20" << endl;} else {cout << "x is not greater than 20" << endl;}// 嵌套的if语句if (x > 5) {if (x < 15) {cout << "x is between 5 and 15" << endl;}}return 0;
}
2.switch语句
switch语句是 C++ 中另一种常用控制流语句,用于根据表达式的值选择不同的执行路径。
switch语句的基本语法如下:
switch (expression) {
case value1:
// 在表达式等于 value1 时执行的代码块
break;
case value2:
// 在表达式等于 value2 时执行的代码块
break;
// 更多的 case 语句...
default:
// 如果表达式的值与所有的 case 值都不匹配时执行的代码块
break;
}
switch语句首先计算表达式的值,然后将这个值与 case 标签中的值进行比较。如果找到一个匹配的 case 标签,则执行相应的代码块,并跳过后面的 case标签;如果没有找到匹配的 case 标签,则执行default标签后面的代码块(如果有),或者直接跳过 switch语句。
注意:
- 每个 case 标签后面都必须有一个 break语句,用于终止 switch语句的执行,否则将会继续执行下一个 case 标签后面的代码块。
- default标签是可选的,用于处理表达式的值与所有 case值都不匹配的情况。
下面是一个示例,演示了 `switch` 语句的用法:
#include <iostream>
using namespace std;int main() {int choice;cout << "Enter a number between 1 and 3: ";cin >> choice;switch (choice) {case 1:cout << "You chose option 1" << endl;break;case 2:cout << "You chose option 2" << endl;break;case 3:cout << "You chose option 3" << endl;break;default:cout << "Invalid choice" << endl;break;}return 0;
}
在这个示例中,用户输入一个数字,然后根据这个数字执行相应的操作。根据用户的输入,switch语句会选择不同的执行路径。
四、循环结构
1.for语句
for循环是 C++ 中常用的一种循环结构,用于重复执行一段代码,直到条件不再足。
for循环的基本语法如下:
for (initialization; condition; update) {
// 在条件为真时执行的代码块
}
其中:
initialization 是循环开始前的初始化语句,通常用于初始化循环控制变量。
condition 是循环继续执行的条件,每次循环迭代之前都会进行检查。如果条件为真,则继续执行循环;如果条件为假,则结束循环。
update是循环迭代后更新循环控制变量的语句,通常用于增加或减少循环控制变量的值。
for 循环可以替代 while 循环,它的结构更加简洁明了,适合于循环次数已知的情况。
下面是一个示例,演示了 for循环的用法:
#include <iostream>
using namespace std;int main() {// 打印数字1到5for (int i = 1; i <= 5; ++i) {cout << i << " ";}cout << endl;// 计算数字1到5的和int sum = 0;for (int j = 1; j <= 5; ++j) {sum += j;}cout << "Sum of numbers 1 to 5: " << sum << endl;return 0;
}
在这个示例中,我们使用 for循环打印了数字1到5,以及计算了数字1到5的和。在 for循环的括号中,我们分别进行了循环变量的初始化、条件的检查和循环变量的更新。
2.while语句
while 循环是 C++ 中另一种常用的循环结构,它用于重复执行一段代码,直到指定的条件不再满足。while循环的基本语法如下:
while (condition) {
// 在条件为真时执行的代码块
}
其中 condition是循环继续执行的条件。在每次循环迭代开始时,会检查 condition的值。如果 condition 为真,则执行循环体内的代码块;如果 condition为假,则结束循环,程序继续执行循环后面的代码。
while循环常用于循环次数不确定的情况,只要条件为真,循环就会继续执行。
下面是一个示例,演示了 `while` 循环的用法:
#include <iostream>
using namespace std;int main() {int num = 1;// 打印数字1到5while (num <= 5) {cout << num << " ";++num;}cout << endl;// 计算数字1到5的和num = 1;int sum = 0;while (num <= 5) {sum += num;++num;}cout << "Sum of numbers 1 to 5: " << sum << endl;return 0;
}
在这个示例中,我们使用 while 循环打印了数字1到5,以及计算了数字1到5的和。在 `while` 循环的括号中,我们指定了条件 num <= 5,并在循环体内对循环控制变量 num进行递增操作。
3.do...while语句
do...while 循环是 C++ 中另一种循环结构,它和 while循环类似,但在执行循环体之前会先执行一次条件检查。这意味着无论条件是否为真,循环体至少会执行一次。
do...while 循环的基本语法如下:
do {
// 循环体内的代码块
} while (condition);
其中 condition 是循环继续执行的条件。在每次循环迭代开始时,会先执行循环体内的代码块,然后再检查 condition 的值。如果 condition 为真,则继续执行循环;如果 condition为假,则结束循环,程序继续执行循环后面的代码。
do...while 循环适用于需要至少执行一次循环体的情况。
下面是一个示例,演示了 do...while循环的用法:
#include <iostream>
using namespace std;int main() {int num = 1;// 打印数字1到5do {cout << num << " ";++num;} while (num <= 5);cout << endl;// 计算数字1到5的和num = 1;int sum = 0;do {sum += num;++num;} while (num <= 5);cout << "Sum of numbers 1 to 5: " << sum << endl;return 0;
}
在这个示例中,我们使用 do...while 循环打印了数字1到5,以及计算了数字1到5的和。无论条件 num <= 5是否为真,循环体至少会执行一次。
4.循环的嵌套
循环的嵌套是指在一个循环内部包含另一个循环。C++ 允许在任何循环体内部嵌套其他类型的循环,包括 for 循环、while 循环、do...while 循环等。通过循环的嵌套,可以实现更复杂的控制流程和算法逻辑。
下面是一个简单的示例,演示了循环的嵌套:
#include <iostream>
using namespace std;int main() {// 外层循环控制行数for (int i = 1; i <= 5; ++i) {// 内层循环控制每行打印的星号数量for (int j = 1; j <= i; ++j) {cout << "* ";}cout << endl;}return 0;
}
在这个示例中,外层循环控制行数,内层循环控制每行打印的星号数量。通过循环的嵌套,我们实现了一个打印直角三角形的功能。
循环的嵌套可以嵌套多层,可以结合条件判断语句,实现更复杂的控制逻辑。然而,过度的循环嵌套可能会导致代码可读性下降和性能问题,因此需要谨慎使用。
五、跳转语句
跳转语句是 C++ 中的一种特殊语句,用于改变程序的执行流程,通常用于控制程序的跳转和循环中的终止。
以下是几种常见的跳转语句:
1. break 语句:在循环语句 (for, while, do...while) 或 switch 语句中,break语句用于终止当前循环或 switch语句的执行,并跳出循环或 switch语句的代码块。
for (int i = 0; i < 10; ++i) {if (i == 5) {break; // 当 i 等于 5 时跳出循环}cout << i << endl;}
2. continue 语句:在循环语句 (for, while, do...while) 中,continue 语句用于跳过当前迭代的剩余部分,直接进入下一次循环迭代。
for (int i = 0; i < 10; ++i) {if (i % 2 == 0) {continue; // 当 i 为偶数时跳过本次循环}cout << i << endl;}
3. return 语句:在函数中,return语句用于返回函数的执行结果,并结束函数的执行。
int square(int x) {return x * x; // 返回 x 的平方}
4. goto 语句:goto语句是 C++ 中最基本的跳转语句,它可以直接跳转到指定标签(标签必须在当前作用域内)的语句处执行。
int x = 0;loop:cout << x << endl;++x;if (x < 10) {goto loop; // 跳转到 loop 标签处继续执行}
尽管 `goto` 语句在一些特定情况下可能会提供一种解决问题的途径,但通常不推荐使用,因为它会使程序的流程变得难以理解和维护。相比之下,使用结构化的控制语句(如 break、continue、return)可以使代码更加清晰易读。