C语言基础继续讲讲(循环语句-数组)

C语言基础

三大执行流程

  1. 顺序执行流程

  2. 条件执行流程

    1. if语句
      if(条件)
      {
          语句体
      }
      如果条件成立,就执行{}的内容
      
      1. 如果没有{},就只执行if下面第一行的语句
      2. 不管if下面执行几条语句,都用{}便于将来代码调试。
      if(条件)
      {
          语句体
      }
      else
      {
          语句体
      }
      
      if (条件)
      {
          语句体
      }
      else if(条件)
      {
      语句体
      }
      else
      {
          语句体
      }
      
      1. 注意点
        • 如果if语句有else,else必须放在最后,不可以放在if和else if 的中间。
    2. 条件分支switch
    switch(变量)
    {
        case 常量1:语句体1;break;
        case 常量2:语句体2;break;
        default:语句体3;break;
    }
    用法分析:变量与下面的常量是否相同,如果相同,则执行下面的语句。
    
    • 注意点

      1. case后面的值必须是常量
      2. default无论放在哪都可以
      3. case后面的值必须是唯一的,不能与其他的case后面的变量相同。
      4. 每一个case后面必须要有break。
    • getchar():从输入缓存流取出一个字符。

    吸收输入缓存流里面的回车残留
    char ch;
    scanf(%c,&ch);
    
    getchar();
    
    getc(stdin);
    
  3. 循环执行流程

    1. while语句
    int main()
    {
        int a,j;
        while(a<100)
        {
            if(a%2==0)
                j=j+a;
        }
    }
    求偶数:用a&0001;
    
    1. do-while语句
    
    
    1. for语句
    for(表达式1;条件;表达式3)
    {
        语句体2
    }
    
    • 分析:
      1. 先执行表达式1,表达式1有且执行一次,在判断条件是否成立。
      2. 再判断条件是否成立,如果条件成立,就执行语句体2;
      3. 执行完语句体2之后再去执行表达式3
      4. 再从步奏2开始判断
    • 注意点:
      1. 不能省略;
      2. 如果是for( ; ; ),会是一个死循环。
      #include 
      int main()
      {
          int i=1,sum=0;
          for(;i<100;)
          {
              sum+=i;
              i++;
          }
          printf("%d",sum);
      }
      

break与continue

  • break只能在switch,for,while,do-while里面做。
  • berak是跳出整个循环,继而执行以下面的代码。
  • 当碰到break语句时,break下面直到循环体}里面的语句不会被执行。
  • break只跳出最近的一层循环
  • continue只能用在循环中,只是跳出一次循环,继而执行下面的循环。

//输入字符串,计算字符的个数,遇空格结束

#include 
int main()
{
    char ch;
    int i=0;
    while((ch=getchar())!='\n')
    {
        if(ch==' ')
        {
            break;//遇空格跳过继续计算则用continue;
        }
        i++;
    }
    printf("%d\n",i);
    return 0;
}

数组

  • 数组的定义
int array[30];
//1. 数组的初始化
int array[6]={1,2,3,4,5,6}
//2. 元素不足用0补全
int array[6]={1,2,3}
//3. 如果行号省略,根据后面的元素的实际个数确定行号。
int array[]={1,2,3}
//4.不准这么写
int size=5;
int array[size]={}
//5. 字符是一种特殊的整形
int array['a']={1,2,3}
//6.
int array[5]={[4]=8,[5]=7}
//7. 越界访问+师徒试图将一个数组赋值给一个变量。
int array[5];
array[5]={1,2,3,4,5}
//结论:如果想初始化,请在定义数组时赋值。
  • 数组元素的访问:数组名[下标]
    • 0<=下标<=数组大小
  • 数组的遍历,挨个访问数组元素
int i=0;
int a[5]={1,2,3,4,5}
for(i=0;i<5;i++)
{
    printf("%d ",a[i]);
}
  • 数组是连续分配存储的
  • 数组名相当于首元素的地址
    array:0xffc0
    array+1个单位:array+sizeof
    (int)*1=0xffc4
    array+2:0xffc8
    
    • 访问第i个元素的值:array[i]
    • 访问第i个元素的地址:array+i,&array[i]
      小结:今天把break,continue终于弄得很明了,以前的弄懂其实是自以为是,今天的课堂上跟着苍老师一起重复多次学习了他们的使用,根据一些已有的源代码,得到了很好的了解。
      晚上听了上嵌电台,以及朱老师的如何度过你的试用期的音频。觉得上嵌对于学员的就业真是用心良苦,做了电台,录了朱老师现场演讲,每字每句对我这种面试小白都是数不尽的经验值加成。要好好听,认真学,不能一听一忘,听后感是必须的,但怕自己总结的不够好,所以还是列下要点为好。恩,待我重开文章一篇。

你可能感兴趣的:(C语言基础继续讲讲(循环语句-数组))