循环结构
do-while语句
do
{
语句
}while(表达式);
语义:先执行语句,然后判断表达式,如果表达式成立,则继续执行语句,重复这个过程,直到表达式为假,如果执行完第一次语句后判断表达式为假,则整个do-while语句结束 。
流程图:
语法细节:在while后一定要接分号';'。
与while的对比:do-while为先执行后判断表达式,而while反之,所以说,do-while至少被执行一次。
for语句
for (循环初始条件;体现循环结束条件;使循环趋于结束的操作)
{
循环体;
}
语义:表达式2成立,则执行循环体中的语句,然后再判断表达式2,直到表达式2不成立。
流程图:
注意:for语句的三个表达式都可以不写,但是本质上的循环四个要素不能丢,特别注意表达式2不写时,表示永远为真,则一直循环下去。
break
表示跳出本层循环,再循环的嵌套使用时可以加上判断语句来达到自己想要的效果。
continue
表示跳过本次循环,与break不同,这次循环跳过了,若表达式成立,则马上继续执行下一次循环。
总结:对于有明显范围的循环,我们一般采用for语句来完成,如果只有一个结束条件,多采用while 或者 do-while语句
数组
概念:表示一组相同类型的数据或者变量的集合。这使得数组可以批量的存储数据,也可以加上循环操作来批量处理数据。
数组的特点:
1.连续性:数组空间是一片连续的内存空间。只要知道首地址,就能找到该数组的任意一个元素。
2.有序性:数组的元素按照顺序依次存放。
3.单一性:数组的类型是同一的。
形式如下:
类型说明符 数组名[常量表达式]
int a[10];
数组给值:
1.初始化:初始化分三种:第一种为全部初始化;第二种为部分初始化;第三种为不初始化。全初始化时,数据会被按照顺序赋值给数组中的每一个元素;部分初始化时,没有被赋值的元素会被初始化为0;不初始化时,数组中的元素会保存原先内存空间上的值,这些值是随机的不可预测的。
int a[5] = {1,2,3,4,5}; //全部初始化
int a[5] = {1,0}; //部分初始化
int a[5] //不初始化
2.赋值:赋值时,可以一个一个元素慢慢赋值,当然也可以加上循环操作给数组赋值。
int a[5];
a[0] = 1;
a[1] = 2;
...
int a[5];
for(i = 0;i < 5;i++)
{
scanf("%d",&a[i]);
}
注意:在程序中,a代表整个数组,a的值为该数组的首地址编码,[ ] 为下标运算符,通过与a(也就是首地址)的偏移量来表示数组中的一个元素。