一、基本三种程序运行结构:顺序结构、选择结构、循环结构
- 选择结构
- If语句:后面不加分号
单行格式(if)、多行格式(if ...else....)、多条件(if....else if....else...)、嵌套if语句(if语句中嵌套if语句)
- 三目运算符:
表达式1?表达式2:表达式3
如果1为真,执行表达式2;否则,执行表达式3。
在C++中三目运算符返回的是变量,可以继续赋值。
- Switch语句:
Switch(表达式)
{
Case 结果1:执行语句;break;//退出当前的分支
Case 结果2:执行语句;break;
Case 结果3:执行语句;break;
}
- If和switch的区别:
Switch缺点:判断时候只能是整型或者字符型,不可以是一个区间
Switch优点:结构清晰,执行效率高
- 循环结构:需避免死循环出现。Break退出当前循环
- While循环语句:while(循环条件){循环语句}
- Do..while循环语句:
与while的区别在于其会先执行依次循环语句,在判断循环条件。
Do{循环语句}while{循环条件};
- For循环语句:for(起始表达式;条件表达式;末尾循环体){循环语句;}
嵌套循环语句:
- 跳转语句
- break:
出现在switch条件语句中,作用是终止case并跳出switch;
出现在循环语句中,作用是跳出当前的循环语句;
出现在嵌套循环中,跳出最近的内存循环语句;
- Continue语句:
再循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一次循环。 执行到本行就不再执行下面的代码,直接执 行下一次循环。
- Goto语句:无条件跳转语句,直接跳到标记位置。
Goto 标记;
标记:
二、数组:
- 就是一个集合,里面存放了相同类型的数据元素
- 特点:
数组中每个数据元素都是相同的数据类型
数组是由连续的内存位置组成的(放在连续的内存空间中)
- 一维数组的定义方法:
数据类型 数组名[数据长度];
数据类型 数组名[数组长度]={值1,值2,...};
数据类型 数组名[ ]={值1,值2,.....};
若在初始化数据时没有全部填写完,用0来填补完。
定义数组的时候必须要有一个初始长度。
- 一维数组名称用途:
可以统计整个数组在内存中的长度 sizeof(arr)
每个元素占的内存空间: sizeof(arr[0])
数组中元素个数: sizeof(arr)/sizeof(arr[0])
可以获取数组在内存中的首地址: cout<<arr<<endl(十六进制);(十进制arr前加(int))
数组中第n个元素地址:cout<<(int)&arr[n]<<endl (十进制)
注意:数组名是个常量不可以进行赋值。
- 冒泡排序:
作用:最常用的排序算法,对数组内元素进行排序
步骤:
- 比较相邻两元素,若第一个比第二个打,交换位置;
- 对每对相邻元素做同样的工作,执行完毕后,找到第一个最大值
- 重复以上步骤,每次比较次数-1,直到不需要比较
- 二维数组:
定义方式:
数据类型 数组名[行数][列数];
数据类型 数组名[行数][列数]={{数据1,数据2},{数据3,数据4}}
上式,更直观,提高代码可读性。
数据类型 数组名[行数][列数]={数据1,数据2,数据3,数据4};
数据类型 数组名[][列数]={数据1,数据2,数据3,数据4};
二维数组数组名称:
查看二维数组所占内存空间
获取二维数组首地址