1.while
2.do..while
3.for
1.基本形式
2.嵌套形式
for (A; B; C)
{
D;
for (E; F; G)
{
H;
}
}
外层循环执行一次,里层循环执行一遍
2.辅助控制语句:
1.break
跳出循环或者switch结构
循环不再执行,用break
2.continue
结束本次循环
一个循环中屏蔽某几次循环可以使用continue
3.return
结束当前函数
练习:利用双层for循环实现打印99乘法表
4.goto
出错处理
练习:
1.从终端接收若干个成绩,以-1结尾,计算所有输入有效成绩的平均分
1.数组:一组类型相同的有限个元素的集合
2.分类:一维数组、二维数组、多维数组
3.一维整形数组:
1.定义形式:
数据类型 数组名[元素个数];
int a[5];
注意:
元素个数必须为常量或常量表达式,不能是变量或变量表达式
int n = 5;
int a[n]; //错
int a[n+2]; //错
int a[5]; //对
int a[2+3]; //对
2.元素访问:
数组名[元素下标];
元素下标: 0 - 元素个数-1
元素下标:可以用变量、常量或者表达式访问
a[n]; //对
a[0]; //对
a[0+1]; //对
a[n+1]; //对
注意:
1.不能越界访问
3.数组的初始化:
定义数组时对数组元素赋初值
初始化 != 赋值
1.全部初始化:
所有数组元素都可以得到初值
int a[5] = {1, 2, 3, 4, 5};
2.局部初始化:
给定一部分元素的值,没有给定初值的元素,默认初始化为0
int a[5] = {1, 2, 3};
int a[5] = {0};
3.默认初始化:
不给定数组元素个数,通过初值元素个数决定数组元素个数
int a[] = {1, 2, 3, 4, 5};
int a[5] = {0};
a[5] = {1, 2, 3, 4, 5}; //错
a = {1, 2, 3, 4, 5}; //错
4.内存空间:
int a[5];
数组所占空间大小 = 数据类型所占空间大小 * 元素个数
1.连续性:
数组所占空间连续
2.有序性:
数组空间存放顺序有序,先存下标为0的元素,再存下标为1的元素, ...
获得数组元素个数: sizeof(a) / sizeof(a[0])
练习:从终端接收5个数放入数组中,打印出所有数据的平均值
5.获得数组中最大值或者最小值和下标
6.数组中元素实现倒置
作业:
1.从终端接收10个成绩,去掉最高分,去掉最低分,计算选手的最终平均分成绩
2.打印出所有的水仙花数:
1.是一个三位数
2.每位数上的立方和值为该数本身
153 == 1*1*1 + 5*5*5 + 3*3*3
== 1 + 125 + 27
== 153