day-07嵌入式-循环结构and数组

目录

do-while 语句:

总结

for循环语句

总结

break、continue语句

break:

continue:

数组

概念 

数组初始化

注意:


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}

注意:

  1. 数组越界

    C 语言中的数组没有自动边界检查,访问超出数组大小的索引会导致未定义行为,可能引发程序崩溃或数据损坏。
    int arr[5];
    arr[5] = 10; // 越界访问,未定义行为
  2. 数组的大小

    • 数组的大小必须是常量表达式,并且在定义时确定。动态大小数组需要使用指针和动态内存分配。

      int size = 10;
      int arr[size]; // 错误:在 C89/C90 中不支持
      
    • 在 C99 和后续标准中,可以使用变量长度数组(VLA):

      int size = 10;
      int arr[size]; // 在 C99 中有效
  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值