目录
do-while 语句:
语法:
do {
// 执行的代码块
} while (条件);
语义:
先,执行 语句
然后 判断 表达式
真
继续 执行语句,然后判断,重复这个过程,直到 表达式为假,do-while 语句结束
假
do-while 结束,程序继续往下
总结
do-while
循环:至少执行一次循环体,适合用于那些需要在条件检查前先执行代码的场景。- 使用时注意:确保循环有终止条件,避免无限循环,并了解编程语言对
do-while
语法的支持情况。
for循环语句
for(表达式1;表达式2;表达式3)
{
语句;
}
语义:
for(初始条件;循环条件;使循环趋于结束语句)
应用:for循环找水仙数
1 #include <stdio.h>
2 int main()
3 {
4 int i = 0;
5 int hum,ten,ones;
6
7 for(i = 100;i < 1000;++i)
8 {
9 hum = i/100;
10 ten = i/10%10;
11 ones = i%10;
12
13 if(i==(hum*hum*hum + ten*ten*ten + ones*ones*ones))
14 printf("%d\n",i);
15 }
16
17 return 0;
18
19 }
~
总结
for
循环:用于执行固定次数的迭代,是一种高效的循环控制结构。(while可以完成的for都可以完成)- 注意细节:了解并正确使用循环变量的作用域,防止无限循环,合理使用复合语句和多重循环,并确保条件和更新表达式正确。
- 语句换位:for(初始条件;循环条件;使循环趋于结束语句)其中这些语句可以不一定在这些位置,但在整个语句中必须存在
break、continue语句
break:
在switch、循环语句中都可以使用
作用:跳出本层循环。
continue:
只在循环中使用
作用:结束本次循环
break、continue语句的使用
1 #include <stdio.h>
2 int main()
3 {
4 int i = 0;
5 int j = 0;
6
7 for(i = 0;i < 5;++i)
8 {
9 printf("------i = %d\n",i);
10 for(j = 0;j < 10;++j)
11 {
12 printf("j = %d\n",j);
13 if(j > 5)
14 break;
15 }
16
17 if(i%2==0)
18 continue;
19
20 printf("i = %d j = %d\n",i,j);
21 }
22
23 return 0;
24
25 }
注意:break可以跳出while和for本层循环,continue可以跳出一次循环//一层和一次循环时不一样的,一层包含很多次。
数组
概念
一组数据 、一组相同类型的数据的集合 、一组相同类型的变量的集合 、数组也是一种数据类型 。
应用:
float h1,h2,h3,...,h30;
应用场景:
批量的处理多个数据
语法:int array [n]
int array [n]
类型说明符 数组名[常量表达式]
(1) (2) (3)
int array[10]; //表示此时定义了一个数组
//这个数组中存放的是int型的数据
//存放了10个int型的数据
//表示定义了一个可以存放10个int型数据的数组
//理解的角度,相当于一下子定义出10个int型变量
int a[10];
a 所代表的值 数组所占空间的首地址
a 所代表的数据类型 a 代表整个数组类型
a所代表的类型是int[10] ,这就是所谓的 数组类型
int a; //判断标识符所代表的数据类型 ---去掉标识符,剩下就是标识符对应的数据类型
int a[10];
数组初始化
// 定义一个整型数组,大小为 5
int arr[5];
初始化:数组可以在定义时初始化:
int arr[5] = {1, 2, 3, 4, 5};
部分初始化:如果初始化的元素个数少于数组大小,其余的元素将被自动初始化为 0:
int arr[5] = {1, 2}; // 实际arr = {1, 2, 0, 0, 0}
注意:
-
数组越界:
C 语言中的数组没有自动边界检查,访问超出数组大小的索引会导致未定义行为,可能引发程序崩溃或数据损坏。int arr[5]; arr[5] = 10; // 越界访问,未定义行为
-
数组的大小:
-
数组的大小必须是常量表达式,并且在定义时确定。动态大小数组需要使用指针和动态内存分配。
int size = 10; int arr[size]; // 错误:在 C89/C90 中不支持
-
在 C99 和后续标准中,可以使用变量长度数组(VLA):
int size = 10; int arr[size]; // 在 C99 中有效
-