1 选择结构
1.1 if语句
if语句用于判定,如果条件满足则执行其中的代码,如果不满足则不执行。
常用的格式如下:
- 单条判断
#include <iostream>
using namespace std;
int main() {
int a;
cout << "输入一个整数:" << endl;
cin >> a;
if (a < 10) {
cout << "a小于10" << endl;
}
return 0;
}
输入和输出
输入一个整数:
5
a小于10
输入一个整数:
11
- 两条判断
#include <iostream>
using namespace std;
int main() {
int a;
cout << "输入一个整数:" << endl;
cin >> a;
if (a < 10) {
cout << "a小于10" << endl;
} else {
cout << "a大于等于10" << endl;
}
return 0;
}
输入和输出
输入一个整数:
5
a小于10
输入一个整数:
11
a大于等于10
上面这种只支持两种判断,true走一路,false走一路
- 多条判断
这种方式支持多种判断结果
int main() {
int a;
cout << "输入一个整数:" << endl;
cin >> a;
if (a < 10) {
cout << "a小于10" << endl;
} else if (a < 20) {
cout << "a大于等于10,小于20" << endl;
} else {
cout << "a大于等于20" << endl;
}
return 0;
}
输出
输入一个整数:
5
a小于10
输入一个整数:
11
a大于等于10,小于20
输入一个整数:
21
a大于等于20
1.2 三目运算符
语法:表达式1 ?表达式2:表达式3
这个语句中,表达式1为一个bool类型的数据,如果该数据为true,则执行表达式2,否则执行表达式3。
上面的两条判断可以进入如下修改,使用三目运算符
#include <iostream>
using namespace std;
int main() {
int a;
cout << "输入一个整数:" << endl;
cin >> a;
a < 10 ? cout << "a小于10" << endl : cout << "a大于等于10" << endl;
return 0;
}
1.3 switch语句
switch语句用于执行多条分支语句
语法
switch(表达式)
{
case 结果1:执行语句;break;
case 结果2:执行语句;break;
...
default:执行语句;break;
}
代码示例:
#include <iostream>
using namespace std;
int main() {
int a;
cout << "输入一个整数:" << endl;
cin >> a;
switch (a) {
case 0:
cout << "a = 0" << endl;
break;
case 1:
cout << "a = 1" << endl;
break;
default:
cout << "a is not 0 or 1" << endl;
break;
}
return 0;
}
输入和输出
输入一个整数:
0
a = 0
输入一个整数:
1
a = 1
输入一个整数:
2
a is not 0 or 1
需要注意的是,switch中的判断语句只能是整型或者字符型,不支持字符串类型。
如果case中没有break,则会顺序执行后面的case,导致错误。
2 循环结构
C++中支持三种循环结构
2.1 for循环
语法:for(起始值;条件表达式;末尾循环体){循环内容;}
for循环根据一个变量来判断执行多少次循环体内容。该变量存在一个初始值,只要该变量满足条件表达式,则会执行循环内容,执行完一次后,会根据末尾循环体修改变量,然后再次根据条件表达式来判断是否执行下次循环。
for (int i = 0; i < 10; ++i) {
cout << "hello" << endl;
}
这段代码会打印10次hello
2.2 while循环
语法:while(条件表达式){循环内容;}
上面的for循环修改后为:
int i = 0;
while (i < 10) {
cout << "hello" << endl;
i++;
}
2.3 do…while循环
语法:do {循环内容;} while(条件表达式)
这个与while相似,只是先执行再判断
int i = 0;
do {
cout << "hello" << endl;
i++;
} while (i < 10);
3 跳转语句
3.1 break语句
break主要用于跳出当前循环
for (int i = 0; i < 10; ++i) {
cout << "hello" << endl;
if (i > 5) {
break;
}
}
该循环满足条件打印的值是0-6,当i为6时,会跳出当前循环,结束循环,所以会打印7次hello
3.2 continue语句
continue语句用于跳过当次循环,执行下次循环
for (int i = 0; i < 10; ++i) {
if (i < 3) {
continue ;
}
cout << "hello i = " << i << endl;
}
由于0,1,2满足if语句条件,所以这三次都会跳过后面的cout输出语句。
打印值为:
hello i = 3
hello i = 4
hello i = 5
hello i = 6
hello i = 7
hello i = 8
hello i = 9
3.3 goto语句
goto用于跳到指定代码处执行,通常不推荐使用,一来会影响代码的可读性,二来可能会导致代码混乱。
for (int i = 0; i < 10; ++i) {
if (i == 3) {
goto FLAG;
}
cout << "hello i = " << i << endl;
}
FLAG:
cout << "this is flag" << endl;
输出:
hello i = 0
hello i = 1
hello i = 2
this is flag