C语言的循环语句:
goto //并不是循环语句 --- 跳转语句
while
do-while
for
循环
goto
goto:
语法:
goto 标签; //语句标号
例:
loop为标签 , goto loop 跳传到 loop处 输出 无限循环hello world
构成循环的要素:
1.循环体 //反复被执行的代码
2.结束条件
3.使循环趋于结束的操作(或语句)
4.循环的初始条件
while 语句
语法:
while (表达式)
{
语句
}
语义:
判断 表达式 ,
真
执行 语句
语句 执行玩之后,继续表达式 判断,
重复上面的操作,
直到 表达式为假
假
while 结束,程序继续往下
例
先判断 i 是否小于等于100,真 则执行 num = num + i;假 则结束循环
for
for(表达式1;表达式2;表达式3)
{
循环体语句
}
1.求解表达式1
2.判断表达式2
3.真 则执行循环体语句,执行完之后 求解表达式3
4.继续判断表达式
表达式1 //初始条件
表达式2 //循环条件(循环结束条件)
表达式3 //是循环趋于结束的语句
例;
i = 0,判断i<100,真则执行 num = i + num,i++ 后继续判断i<100,进行循环
直到 i<100为假
break 和 continue
break 可以用在 switch while do...while for中
作用 跳出本次循环 即 提前结束循环,执行下面的语句
continue; 其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否 执行循环的判定
continue 语句和 break 语句的区别是:continue 语句只结束本次循环,而不是终止整 个循环的执行。而 break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立
数组
数组:
概念
//一组数据
一组相同类型的数据的集合
一组相同类型的变量的集合
数组也是一种数据类型
应用:
float h1,h2,h3,...,h30;
应用场景:
批量的处理多个数据
语法:
类型说明符 数组名[常量表达式]
(1) (2) (3)
说明:
(1)类型说明符 --- 数据类型
整型 int/short/long/long long
浮点型 float / double /long double
字符型 char
作用: 用来说明 该数组中元素的类型
(2)数组名 --- 名字 (标识符)
用来代表这个数组
起名字规则 与 之前变量名起名规则一致
(3)[常量表达式]
--- [] //这个就是数组类型
常量表达式 //数组长度 --代表数组中元素的个数
注:
1. c99标准之后,数组长度 可以是变量
可变长数组
但是,不能初始化
2. 数组长度,可以省略,但是必须要有初始化
编译器要根据初始化的值,来推算实际的长度
int len = sizeof(a)/sizeof(int); //计算实际长度
eg:
int array[10]; //表示此时定义了一个数组
//这个数组中存放的是int型的数据
//存放了10个int型的数据
//表示定义了一个可以存放10个int型数据的数组
//理解的角度,相当于一下子定义出10个int型变量
数组给值:
1.初始化
int a[10] = {}; //{} 初始化器
//全部初始化
int a[10] = {1,2,3,4,5,6,7,8,9,10};
//部分初始化 ---未初始化的部分会被初始化为0
int a[10] = {1,2,3,4,5};
//不初始化 --- 数组中是随机值(垃圾值)
int a[10];
2.赋值
循环赋值
输入的方式
数组特点:
连续性 --- 数组空间是一片连续内存空间
有序性 --- 数组的元素挨个存放
单一性 --- 数组元素类型是同一类型
数组元素的引用:
语法:
数组名[下标]; //[] 此时表示的是一种运算 --- 数组下标运算
下标含义:
a[0] //下标表示的是相对于 数组名 偏移了几个元素
偏移量
a[1]
a[2]
...
a[9]
数组越界 // int a[5] = {1,2,3,4,5} a[10] 数组长度为5,不可越界访问a[10]
注意:
int a[10];
a 所代表的值 数组所占空间的首地址
a 所代表的数据类型 a 代表整个数组类型
a所代表的类型是int[10] ,这就是所谓的 数组类型
int a; //判断标识符所代表的数据类型 ---去掉标识符,剩下就是标识符对应的数据类型
int a[10];