目录
在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 ,程序将不执行任何操作,并继续执行后续代码。
在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的结果在两个代码块中进行选择,并执行相应的代码。
在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"。
在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 是一种选择结构的语句,可以用 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!"。
在C++中,switch 表达式的数据类型主要包括整型、字符型和枚举型。下面进行详细说明:
表示整数的数据类型,如 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;
}
表示字符的数据类型,如 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;
}
用户自定义的特殊整数类型,使用枚举变量作为 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 语句来实现。
在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的结果。
嵌套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 循环的关键在于理解不同层次循环是如何相互搭配以完成任务的。在这个例子中,外层循环负责行循环,而内层循环负责在每行中进行列循环。两者相互协作,构建出完整的乘法表格。
在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时,务必确保循环能够在某种条件下终止,以避免无限循环和程序卡顿。
在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循环的基本语法如下:
while?(condition) {
// 代码块
}
在while循环结构中,首先评估条件表达式condition是否为真(非零)。如果条件为真,程序将执行循环体内的代码块。当执行完循环体内的代码块后,再次评估condition的值。只要条件继续为真,循环将一直执行,直到condition的值变为假(零),此时循环将终止。
以下是一个使用 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的整数。
使用 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之间奇数的和。