目录
循环
while 循环:
for 循环:
do while 循环:
中断循环:
break
continue:
数组
数组:用来装一组数的类型。声明形式如下:
定义数组类型变量:
下标:即各元素的编号,编号从 0 开始
二维数组
二维数组初始化:
二维数组元素遍历:
对二维数组元素赋值
循环
循环就是重复的执行一段代码
 
 循环结构有三种:while 循环,for 循环,do while 循环 
 
 
while 循环:
 
  形式:  
 
 
  
  
  while(条件)  
 
 
  
  {  
 
 
  
           code;  
 
 
  
           //条件为真就重复执行  
 
 
  
  } 
 
 
  
  
  
  例题: 
 
 
  
   输出 1,2,3,4,5  
  
 
   
          int i = 1;
        while (i <= 5)
        {
          printf("%d ", i);
          i++;
        } 
    
   
   注意点: 
  
 
   
   1.不要在小括号后面加分号 
  
 
   
   2.只有一条语句的时候可以不加大括号 
  
 
   
   3.条件恒为真的时候就是死循环 
  
 
   
   
   
  for 循环:
 
    循环形式:  
   
 
   for (int i = 1; i<10; i++)
{
   code;
} 
     
    
    三要素: 
   
 
    
    
     要素 1、循环控制变量有初始值,即 i=1,初始值不一定是 1,根据需要来设置 
    
 
     
     要素 2、循环控制变量参与条件,即 i<10 
    
 
     
     要素 3、循环控制变量规律变化,比如 i++,i+=3,i--等等,按照规律变化,乱变不行 
    
 
     
    
    小括号内被两个分号分成三部分,分别是要素 1,要素 2,要素 3  
   
 
    
    
    
     举例:输出 1,2,3,4,5  
    
 
     
    int i;
for (i = 1; i <= 5; i++)
{
    printf("%d ", i);
} 
      
    do while 循环:
 
     形式如下  
    
 
    int i = 1;
do
{
        printf("%d ", i);        
        i++;
}while(i <= 5); 
      
     
     //有分号 
    
 
     
    
    执行过程:先执行,后判断条件 
   
 
    
    用得比较少 
   
 
    
    
    
     对比:  
    
 
     
     while for 叫入口条件循环,二者用谁都行,习惯哪个用哪个,没有好坏。  
    
 
     
     do while 叫出口条件循环,该循环至少执行一次  
    
 
     
     初始循环条件为真时,三者用谁都行。初始循环条件为假时,for,while 一次都不执行,do while  
    
 
     
     执行 1 次。 
    
 
     
     
     
    中断循环:
break
 
      举例如下:  
     
 
     int i = 1;
while (i <= 5)
{
        if (i==3)  //i==3 时中断跳出循环
        break;
        printf("%d ", i);
        i++;
} 
       
      
      执行过程:  
     
 
      
      1、i==1,i<=5 为真,执行循环,3 == i 为假,输出 i 即 1,然后 i++,i 变为 2  
     
 
      
      2、i==2,i<=5 为真,执行循环,3 == i 为假,输出 i 即 2,然后 i++,i 变为 3  
     
 
      
      3、i==3,i<=5 为真,执行循环,3 == i 为真,break 跳出循环 
     
 
      
      
     continue:
结束本次循环,跳到循环头,进行下一轮循环
 
       如下:  
      
 
       
      int i;
for (i = 1; i <= 5; i++)
{
        if (i == 2 || i == 5)
        continue;
        printf("%d ", i);
} 
        
       
       执行过程:  
      
 
       
       0、i=1,i==1,部分 1 只执行一次  
      
 
       
       1、i==1,i<=5 为真,执行循环,if 条件为假,继续执行,输出 i 即 1  
      
 
       
       2、i++,i 变为 2,i<=5 为真,执行循环,if 条件为真,跳到循环头  
      
 
       
       3、i++,i 变为 3,i<=5 为真,执行循环,if 条件为假,继续执行,输出 i 即 3  
      
 
       
       4、i++,i 变为 4,i<=5 为真,执行循环,if 条件为假,继续执行,输出 i 即 4  
      
 
       
       5、i++,i 变为 5,i<=5 为真,执行循环,if 条件为真,跳到循环头  
      
 
       
       6、i++,i 变为 6,i<=5 为假,结束循环 
      
 
       
       
       
      数组
数组:用来装一组数的类型。声明形式如下:
 
        int a[10]; //声明数组 a  
       
 
        
        int 表示该数组用来装 int 类型的元素,其他类型就写其他的,比如 double b[10];  
       
 
        
        a 是数组名字,是合法的 C 语言标识符即可(比如不能取scanf) 
       
 
        
        [ ]是指示的作用,表示变量 a 是数组变量,没有[ ]即 int a,就是普通的整形变量  
       
 
        
        10 表示该数组最多装 10 个 int 类型数据,个数自定。 
       
 
        
      定义数组类型变量:
 
        int a[10] = {6,4,7,3,8,3,2,8,1,0}; //初始化形式,最多初始化 10 个元素  
       
 
        
        int a[10] = {6,4,7,3,8};  
        //初始化部分元素,其他元素默认初始化成 0  
       
 
        
        int a[10] = {0};  
        //10 个元素全部初始化 0  
       
 
        
        int a[ ] = {6,4,7,3};  
        //初始化时可不写元素个数,系统根据元素多少自定 
       
 
        
        
        
       下标:即各元素的编号,编号从 0 开始
 
         int a[5] = {4,2,7,8,4};  
        
 
         
         5 个元素的标号依次是:0,1,2,3,4 最大下标是元素个数-1,即 5-1 
        
 
         
         
          元素访问:数组名[下标]  
         
 
          
          5 个元素依次是:a[0],a[1],a[2],a[3],a[4]  
         
 
          
          相当于 5 个变量,即变量名字,跟 int c = 9;的 c 的用法一模一样 
         
 
          
          
         二维数组
上面学习的叫一维数组,此时就是二维数组,对比定义如下:
int a[5];
//一维数组
int c[3][4]; //二维数组
一维数组:元素是数据类型的的数组
二维数组:元素是一维数组的数组,本质还是一维数组
c 是 3 个元素的一维数组,每个元素是 含有4个 元素的一维数组。
二维数组一般理解为行列,对初学者比较友好,int a[行][列],即 3 行 4 列,可抽象如下

二维数组初始化:
 
           int a[3][2] = {{3,2},{6,5},{8,7}}; //内部大括号对应每个小一维数组  
          
 
           
           3 2  
          
 
           
           6 5 
          
 
           
           8 7  
          
 
           
           int a[3][2] = {{3},{9},{8,7}};  
          
 
           
           //初始化部分元素,其他默认 0  
          
 
           
           3 0 
          
 
           
           9 0 
          
 
           
           8 7  
          
 
           
           int a[3][2] = {3,9,8 };  
          
 
           
           //没有内部大括号,就依次初始化各元素,其他为 0  
          
 
           
           3 9  
          
 
           
           8 0 
          
 
           
           0 0  
          
 
           
           int a[ ][2] = {3,9,8};  
          
 
           
           //初始化时,可不写行,系统根据数据个数计算行,2 行  
          
 
           
           3 9 
          
 
           
           8 0 
          
 
          
           下标:行下标与列下标,都是从 0 开始 
          
 
           
            另一个角度  
           
 
            
            a[0]是第 1 个小数组的数组名字  
           
 
            
            a[1]是第 2 个小数组的数组名字  
           
 
            
            a[2]是第 3 个小数组的数组名字  
           
 
            
            第一个小数组的第一个元素就是 a[0][0] 
           
 
           
 
           二维数组元素遍历:
int i, j, a[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12} };
for (i = 0; i < 3; i++)
    for (j = 0; j < 4; j++)
    {
       printf("%d ", a[i][j]);
    }
  
} 
              
            对二维数组元素赋值
 
         scanf( 
         "%d" 
         , &a[2][2]); 
        
 
         
         
       

















