目录
一、if 条件语句
1.if 语句
2.if-else 语句
3.if-else if-else 语句
4.嵌套 if 语句
二、switch 语句
1.switch 语句基本语法
2.表示 switch 表达式的数据类型
(1)整型
(2)字符型
(3)枚举型
三、for 循环
1.for循环基本语法
2.嵌套for循环
3.程序流程控制
(1)break语句
(2)continue语句
四、while 循环
1.while 基本语法
2.while 使用实例
(1)输出1到5的整数序列
(2)计算1到10之间奇数的和
一、if 条件语句
1.if 语句
在C++中,if 语句用于根据一个给定条件来判断是否执行特定的代码块。 if 语句的语法如下:
if (condition) {
// 代码块1:当 condition 为真(非零)时执行
}
condition是一个布尔表达式,可以是关系运算(如 a > b,c == d)、逻辑运算(如 a && b,c || d)或其他返回布尔值的表达式。当condition结果为true时,if 语句后面的大括号内的代码块将被执行。反之,如果condition为false,代码块将被跳过,程序将继续执行if语句后的其他部分。
下面是一个简单的if
语句例子:
#include <iostream>
using namespace std;
int main()
{
int num = 42;
if (num % 2 == 0) {
cout << "The number is even." << endl;
}
return 0;
}
在这个例子中,我们检查变量 num 是否是一个偶数( num % 2 == 0 )。当条件为 true 时,程序将输出 "The number is even."。如果条件为 false ,程序将不执行任何操作,并继续执行后续代码。
2.if-else 语句
在C++中,if-else语句用于在给定条件的基础上,在两个代码块中选择一个执行。if-else语句的语法如下:
if (condition) {
// 代码块1:当 condition 为真(非零)时执行
} else {
// 代码块2:当 condition 为假(零)时执行
}
condition是一个布尔表达式,可以是关系运算(如 a > b,c == d)或逻辑运算(如 a && b,c || d)等返回布尔值的表达式。当condition为true时,程序将执行代码块1,并跳过代码块2。当condition为false时,程序将略过代码块1,转而执行代码块2。
下面是一个简单的if-else语句例子:
#include <iostream>
using namespace std;
int main()
{
int num = -42;
if (num >= 0) {
cout << "The number is non-negative." << endl;
} else {
cout << "The number is negative." << endl;
}
return 0;
}
在这个例子中,我们检查变量num是否是非负数(num >= 0)。当条件为真(true),程序将输出 "The number is non-negative."。当条件为假(false),程序将输出 "The number is negative."。程序根据condition的结果在两个代码块中进行选择,并执行相应的代码。
3.if-else if-else 语句
在C++中,if-else if-else 语句用于根据多个条件对多个代码块之间进行选择和执行。if-else if-else 语句的语法如下:
if (condition1) {
// 代码块1:当 condition1 为真 (非零) 时执行
} else if (condition2) {
// 代码块2:当 condition1 为假 (零),且 condition2 为真 (非零) 时执行
} else {
// 代码块3:当 condition1 和 condition2 均为假 (零) 时执行
}
condition1 和 condition2 均为布尔表达式,可以是关系运算、逻辑运算或其他返回布尔值的表达式。当 condition1 为 true 时,程序将执行代码块1,并跳过其他代码块。当 condition1 为 false ,但 condition2 结果为 true 时,程序将执行代码块2,并跳过代码块3。当 condition1 和 condition2 均为 false 时,程序将执行代码块3。
可以根据需要增加更多的 else if 分支以处理其他条件。
以下是一个 if-else if-else 语句的示例:
#include <iostream>
using namespace std;
int main()
{
int score = 75;
if (score >= 90) {
cout << "Grade: A" << endl;
} else if (score >= 80) {
cout << "Grade: B" << endl;
} else if (score >= 70) {
cout << "Grade: C" << endl;
} else if (score >= 60) {
cout << "Grade: D" << endl;
} else {
cout << "Grade: F" << endl;
}
return 0;
}
在这个例子中,我们根据分数区间输出对应的等级。程序会按照 if-else if-else 结构逐个检查条件,并执行满足条件的代码块。注意:一旦执行了满足条件的代码块,整个 if-else if-else 结构将终止,不再检查其他条件。在本例中,得分为75,程序会输出 "Grade: C"。
4.嵌套 if 语句
在C++中,嵌套if语句指的是在一个if语句内部包含另一个或多个if语句。这种语法结构可以应用在需要对多个条件进行逐层判断的场景。嵌套if语句的语法如下:
if (condition1) {
// 执行代码块1
if (condition2) {
// 当 condition1 为真且 condition2 为真时,执行代码块2
}
}
condition1和condition2均为布尔表达式。当condition1为true时,程序将进入此if语句。在代码块1内,我们又进行了condition2的检查。仅当condition1和condition2同时为true时,才会执行代码块2。
以下是一个使用嵌套if语句的示例:
#include <iostream>
using namespace std;
int main()
{
int x = 10;
int y = 5;
if (x > y) {
cout << "x is greater than y" << endl;
if (x % y == 0) {
cout << "x is divisible by y" << endl;
}
}
return 0;
}
在这个例子中,我们首先检查x是否大于y。当此条件满足时,程序将输出 "x is greater than y"。接着,在此if语句中,我们进一步检查x是否可以被y整除。如果两个条件均满足,程序将输出 "x is divisible by y"。在本例中,输出结果为:
x is greater than y
x is divisible by y
二、switch 语句
switch 是一种选择结构的语句,可以用 if 代替。
1.switch 语句基本语法
switch 语句主要有 switch、case、break、default 四个关键字组成。
以下是一个C++中使用 switch 语句的简单例子,演示其基本语法和用法:
#include <iostream>
using namespace std;
int main()
{
char grade = 'B';
cout << "Your rating based on grade: ";
switch (grade) {
case 'A':
cout << "Excellent!" << endl;
break;
case 'B':
cout << "Good!" << endl;
break;
case 'C':
cout << "Fair!" << endl;
break;
case 'D':
cout << "Poor!" << endl;
break;
case 'F':
cout << "Failed!" << endl;
break;
default:
cout << "Invalid grade!" << endl;
}
return 0;
}
在这个例子中,我们使用switch语句根据字符变量grade的值,输出相应的评价。switch表达式包含多个case选择,每个case后跟一个常量(字符)表示等级。当grade匹配到某个case常量时,程序将执行对应的代码块并输出结果。
注意,在每个case代码块末尾添加了break语句,它用于在执行完一个case代码块后退出switch语句,这样避免多个case代码块连续执行。最后,default用于处理未匹配到任何case的情况,例如输入了无效的成绩等级。
在本例中,变量grade的值为B,所以程序将输出:"Your rating based on grade: Good!"。
2.表示 switch 表达式的数据类型
在C++中,switch 表达式的数据类型主要包括整型、字符型和枚举型。下面进行详细说明:
(1)整型
表示整数的数据类型,如 int、long、short 等等,使用整数类型的变量作为 switch 表达式。
int num = 2;
switch (num) {
// case 标签为整数常量
case 1:
cout << "One" << endl;
break;
case 2:
cout << "Two" << endl;
break;
default:
cout << "Other" << endl;
}
(2)字符型
表示字符的数据类型,如 char 等,使用字符型变量作为 switch 表达式。
char grade = 'B';
switch (grade) {
// case 标签为字符常量
case 'A':
cout << "Excellent!" << endl;
break;
case 'B':
cout << "Good!" << endl;
break;
default:
cout << "Invalid grade!" << endl;
}
(3)枚举型
用户自定义的特殊整数类型,使用枚举变量作为 switch表达式。
#include <iostream>
using namespace std;
enum Color {RED,GREEN,YELLOW};
int main()
{
Color color = {YELLOW};
switch (color) {
case RED:
cout <<"red" <<endl;
break;
case GREEN:
cout <<"green" <<endl;
break;
case YELLOW:
cout <<"yellow" <<endl;
break;
default:
cout <<"Invail color!" <<endl;
}
return 0;
}
需要注意的是,在C++中, switch 表达式不支持浮点型(如 float 和 double )和字符串型(如 std::string )。要在这些类型的变量上进行条件判断,通常需要使用 if-else if-else 语句来实现。
三、for 循环
1.for循环基本语法
在C++中,for 循环是一种常见的迭代结构,用于重复执行某段代码,直到满足特定条件。for 循环的基本语法如下:
for (初始化; 条件检查; 更新) {
// 代码块
}
for 循环的结构包含三个关键部分:
1)初始化(Initialization):这部分通常用于设置循环变量的初始值,只在循环开始前执行一次。
int i = 0; // 初始化循环变量 i 为 0
2)条件检查(Condition):这部分是一个布尔表达式,它在每次循环迭代前被评估。如果该表达式为 true(非零),则执行循环内的代码块;如果为 false(零),则跳出循环Stop,继续执行循环之后的代码。
i < 5; // 设置循环条件:只要 i 小于5,就继续迭代
3)更新(Update):这部分在每次迭代完成后执行。通常用于更新循环变量的值。
++i; // 在每轮迭代结束后,将循环变量 i 的值加1
把这些部分结合起来,我们可以得到一个完整的for
循环:
for (int i = 0; i < 5; ++i) {
cout << "Iteration: " << i << endl;
}
在此示例中,我们首先初始化循环变量i并将其值设置为0。然后在每次循环迭代前检查i是否小于5。只要这个条件满足,就执行循环内的代码并输出 "Iteration: " 后跟循环计数器i。在每轮迭代完成后,我们更新循环变量i,使其值加1。最终,当i达到5时,循环终止。这个例子将依次输出迭代计数从0到4的结果。
2.嵌套for循环
嵌套for循环是指在一个for循环内部再包含一个或多个for循环。示例说明嵌套for循环的语法和用法。
在C++中,嵌套 for 循环是指在一个 for 循环内部再包含一个或多个 for 循环。这种结构在处理多维数据、多层循环或者需要在一次循环中执行多次操作的场景中非常有用。
以下是一个嵌套 for 循环的示例,用于打印一个9x9的乘法表:
#include <iostream>
using namespace std;
int main()
{
int size = 9;
for (int i = 1; i <= size; i++) {
for (int j = 1; j <= size; j++) {
cout << i*j << "\t";
}
cout << endl;
}
return 0;
}
输出结果如下:
在这个示例中,我们首先使用一个外部 for 循环控制乘法表的行数(通过循环变量 i )。在外部循环中,我们又包含了一个内部 for 循环,控制乘法表的列数(通过循环变量 j )。内部循环中,我们计算 i 和 j 的乘积,并输出结果。每次内部循环结束后,我们打印一个换行符来换行。
嵌套 for 循环的关键在于理解不同层次循环是如何相互搭配以完成任务的。在这个例子中,外层循环负责行循环,而内层循环负责在每行中进行列循环。两者相互协作,构建出完整的乘法表格。
3.程序流程控制
(1)break语句
在C++中, break 语句用于在循环结构(如 for 循环)中提前终止循环。当程序在循环内遇到 break 语句时,它会立即跳出当前循环,不再执行剩余的迭代。 break 语句常常与条件判断语句(如 if )结合使用,以便在满足特定条件时中断循环。
下面是一个使用 break 语句的示例,找到并打印从1开始的第一个能被7整除的数:
#include <iostream>
using namespace std;
int main()
{
int num;
for (num = 1; ; num++) {
if (num % 7 == 0) {
break;
}
}
cout << "The first num is:" << num << endl;
return 0;
}
在此示例中,我们使用for循环无限次迭代,检查从1开始的整数是否能被7整除。当我们找到第一个满足条件的数字时,利用break语句跳出循环。最后,输出结果,即满足条件的数字。
注意,如果循环中没有遇到break语句,for循环将继续执行,直到条件检查变为false。因此,在使用break时,务必确保循环能够在某种条件下终止,以避免无限循环和程序卡顿。
(2)continue语句
在C++中,continue语句用于在循环内(例如for循环)中提前结束当前迭代,并立即开始下一次迭代。当循环遇到continue语句时,它将跳过当前迭代中剩余的语句,回到循环头并继续执行下一个迭代。continue语句通常与条件判断语句(如if)结合使用,以便在满足特定条件时跳过循环体的某些部分。
以下是一个使用continue语句的示例,用于计算1到10之间奇数的和:
#include <iostream>
using namespace std;
int main()
{
int sum = 0;
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue;
}
sum += i;
}
cout << "The sum = " << sum << endl;
return 0;
}
在这个示例中,我们使用for循环遍历1到10之间的整数。对于每一个整数i,我们先检查其是否为偶数。如果是偶数,我们使用continue语句跳过本次循环,即不执行累加操作并直接进入下一个迭代。如果i为奇数,则继续执行累加操作。最后,输出1至10之间奇数的和。
通过使用continue语句,我们可以在循环过程中加入额外的控制逻辑,从而实现更加灵活的循环处理。
四、while 循环
1.while 基本语法
while循环的基本语法如下:
while (condition) {
// 代码块
}
在while循环结构中,首先评估条件表达式condition是否为真(非零)。如果条件为真,程序将执行循环体内的代码块。当执行完循环体内的代码块后,再次评估condition的值。只要条件继续为真,循环将一直执行,直到condition的值变为假(零),此时循环将终止。
2.while 使用实例
(1)输出1到5的整数序列
以下是一个使用 while 循环的简单示例,用于输出1到5的整数序列:
#include <iostream>
using namespace std;
int main()
{
int num = 1;
while (num <= 5) {
cout << num << endl;
++num;
}
return 0;
}
在这个示例中,我们首先定义一个变量num并初始化为1。然后,我们检查num是否不大于5,如果满足条件,将进入循环,并输出num的当前值。每次迭代后,我们将num的值自增1。当num大于5时,循环终止。程序的输出结果将依次为1到5的整数。
(2)计算1到10之间奇数的和
使用 while 循环计算1到10之间奇数的和:
#include <iostream>
using namespace std;
int main()
{
int num = 1;
int sum;
while (num <= 10) {
if ( num % 2 == 1) {
sum += num;
}
num++;
}
cout << "The odd sum = " << sum << endl;
return 0;
}
在这个示例中,我们初始化sum变量为0,用于存储奇数和,一个num变量用于表示当前迭代的自然数。while循环的条件是num要小于等于10。在循环体内,我们通过判断num是否为奇数(num % 2 == 1),如果是奇数,就将其累加到sum中。每次完成循环体,我们将num自增1,进行下一轮迭代。执行完循环后,输出1到10之间奇数的和。