原创 C语法精讲2

2014-8-17 10:58 734 4 4 分类: MCU/ 嵌入式

-----------------------------------------------控制流-------------------------------------------------------

  ·实现功能逻辑的基本结构

            1、顺序结构 2、循环结构 3、分支结构

 

   循环

   while/do while/for

   分支

   if else/switch/goto

  -------------------------------------------while-----------------------------------------

   · while(条件) { 执行体 }   ---->  当条件为真,执行执行体内容,然后再返回判断条件 :

       死循环:    设置条件永远为真

       有限循环:  设置条件有终止(为假)的时候。 

E.g

        i=100;

  while(i--) {执行体};  ---> i初值为100,每次执行完执行体内容,i自减1,一直到i等于0 ,停止循环;

 

·C 语言中 0为假  0为真  ----> 正数为真 ,负数也为真

E.g

  while( scanf("%c",&a) &&  a != 'X' )  -->  当输入正确,scanf返回值为1,并且 a 不为‘X’,条件成立,用于循环输入的例子。

            

  -------------------------------------------do  while--------------------------------------------

        do{

        scanf("%c",&a);

        ......

           }while(a != 'X');    ----->  当输出为‘X’,条件不成立,用于输入‘X’来退出循环的例子。

-----------------------------------------------for----------------------------------------------

 

    for(赋值表达式;判断表达式;操作表达式)   ---->  赋值表达式在当前for循环中,只执行一次;判断表达式和操作表达式执行多次,执行的条件由判断表达式决定。一般情况下,在操作表达式中实现判断条件的有限终止

     E.g

    int x;

    for(;;)   ----> 死循环

 

for(x=0;x<10;x++)

过程x=0 1 2 3 4 5 6 7 8 9    --->  10(不满足 x< 10 ,退出)

 

 

-----------------------------------------------if else--------------------------------------------------

  ·if( 条件 )       -----> 当条件为真时,执行执行体内容

 

     执行体

 

 

  ·if( 条件 )       -----> 当条件为真时,执行执行体1内容 ,为假执行执行体2内容

 

     执行体1

 

  else

 

         执行体2

 

 

 · if( 条件1 )       -----> 当条件1为真时,执行执行体1内容 ,为假执行执行条件2判断

 

            执行体1

 

  else if( 条件2  )  -----> 当条件2为真时,执行执行体2内容 ,为假执行执行条件3判断

 

          执行体2

 

  else

  {

            执行体n

  }

  //缺陷: 需要逐一判断条件,判断条件的位置,决定了算法的效率

--------------------------------------------------switch--------------------------------------------

   ·switch 的判断目标等价一个整型----->(XXXX  可以是表达式,也可以是变量 ,只要其结果是整数)

        ★当条件满足时,将从相应的分支开始执行,直到遇到break,或者switch语句结束;

  switchXXX

      {

       case YYY1......break;

    case YYY2

       case YYY3

       case YYY4......break;

    default......break;          

       }

-----------------------------------------------------goto------------------------------------

int main(int argc, char **argv)

{

//demo 1   死循环

loop:

      .......

       goto loop;

 

//demo 2 出错判断

 

    if( argc < 2 )

       goto err1;

 

err1:

       printf(" err!\n");

       return -1;               ----> 执行完当前的出错处理后,退出程序。

}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /3 下一条