for循环语句:循环就是让一段代码反复执行,达到你想要的效果 for是一种比较灵活且比较危险(与其他循环相比)的循环 一般使用一个变量来引导for循环的运行,这个变量叫做循环变量 i 1、给循环变量赋值,C99标准才可以在for内定义循环变量 -std=gnu99 for内定义的循环变量,只能在for循环内使用 2、判断循环变量是否到达边界,判断为真时执行4,为假结束循环 4、被反复执行的代码,也叫做循环体 3、改变循环变量,防止出现死循环,一般是对循环变量自加或自减 1 2 4 3 2 4 3 2.... 大括号:1、建议上下对齐 2、循环体如果只有一行代码,大括号可以省略 但是不利于代码的扩展,一般的商业代码要求大括号不能省略 for的多种写法: for(;;) { //死循环 } int i=0; for(; i<10; i++) { } for(int i=0; i<10;) { printf("---\n"); i++; }
while语句:while(条件) //当条件为真时,执行循环体,否则结束循环 { //循环体 } while相当于for循环的精简版本 for(;条件;) for循环负责明确知道循环次数的问题 while负责解决只知道结束条件而不确定循环次数的问题 do whiledo{ //循环体 }while(条件); 注意:分号不能少 先执行循环体,在判断循环条件,该循环至少执行一次 适合先干活,再判断的特殊情况 循环嵌套: 循环语句中包含循环语句 外层循环执行一次,内存循环执行n次 跳转语句: goto 可以在函数内任意跳转 标签名: goto 标签名;goto可能会破坏已经设计好的分支或循环语句,因此绝大多数公司禁止使用 在驱动编程时特别适合处理异常 break1、在switch语句中,可以关闭执行开关 2、在循环语句中,可以跳出一层循环 continue结束本次循环,直接进入下一次循环 return 1、返回一个数据给函数的调用者 2、结束函数的执行,跳转到调用该函数的位置 数组:什么是数组: 变量的组合,是一种批量定义变量的方式 定义: 类型 数组名[数量]; int num1,num2,num3,num4,num5; int arr[5]; 使用:数组名[下标]; 下标:从零开始 范围:0~数量-1 遍历:与for循环配合使用,使用循环变量i作为数组的下标 初始化: 类型 数组名[数量] = {1,2,3,4,5,...}; 1、数组与普通变量一样默认值是随机的,为了安全要对数组进行初始化 2、这种初始化语法只能在定义语句时使用,而且只能逐个赋值,不能整体赋值 3、初始化数据过多,编译器会产生警告并丢弃多余的数据 4、初始化数据不够,编译器会自动补0 5、初始化时数据可以省略,只写大括号,相当于给所有成员初始化为0 6、初始化时数组的长度可以省略,编译器会自动统计数组元素的个数并告诉数组 sizeof(arr)/sizeof(arr[0]) = 数组的元素个数 数组的总字节数/数组元素的字节数 = 数组的元素个数 数组的越界:C语言为了程序的运行效率是不会检查数组的下标是否越界数组越界的后果: 1、一切正常 2、段错误 3、脏数据 二维数组:一维数组相当于把变量排成一排,通过编号来访问 二维数组相当于把变量排成矩阵,通过行号和列号来访问 定义: 类型 数组名[行数][列数]; int arr[3][5]; [0,0][0,1][0,2][0,3][0,4] [1,0][1,1][1,2][1,3][1,4] [2,0][2,1][2,2][2,3][2,4] 使用:数组名[行下标][列下标]; arr[1][2] 行下标: 0~行数-1 列下标: 0~列数-1 遍历:需要与双层for循环配合,外层一般负责遍历行,内层一般负责遍历列 for(int i=0; i<行数; i++) { for(int j=0; j<列数; j++) { printf("%d ",arr[i][j]); } printf("\n"); } 初始化: 类型 数组名[行数][列数] = {{第一行},{第二行},{第三行},...}; 变长数组:定义数组时使用变量来作为它的长度,在代码编译期间数组的长度是不确定,当执行到数组定义语句时它的长度才确定下来,一旦确定就无法改变 优点:可以根据实际情况来确定数组的长度,达到节约内存的目的 缺点:因为初始化在编译时完成,而此时变长数组的长度并不确定,因此不能初始化 |
循环语句和数组
最新推荐文章于 2022-10-03 05:15:00 发布