一、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 代替。
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; }
(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 循环
在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
循环:
1. for (int i = 0; i < 5; ++i) { 2. cout << "Iteration: " << i << endl; 3. }
在此示例中,我们首先初始化循环变量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之间奇数的和。