C基础----控制流程


 

 流程控制
  顺序结构:默认的流程结构。按照书写顺序执行每一条语句。
  选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
  循环结构:在给定条件成立的情况下,反复执行某一段代码。
一、选择结构-if
  if (表达式)  语句1;
         if(count>50)  开班;  上课;
  if(表达式)  语句1;  else 语句2;
          if(count>50)  开班;  else 不开班;
   if(表达式)  {  }
         if(count>50)  {开班; 布置课室;}  else {}
  if -else if-else
         if(a==0) else if (a>0)  else
  特点:只有一个括号会被执行
注意:
·        if(a!=0) { a不是0;} else {a是0;}
 if (a); {  } //if后面加后,那么后面的{}就是代码块,与if语句无关。
·        if (10) int a = 9;
二、选择结构-switch
 switch(表达式) { case 数值1: break; … default: break;}
 举例

int a = 10;
 switch (a) {
    case 0:
        printf("这是一个0");
        break;
    case 5:
        printf("这是一个5");
        break;
    case 10:
        printf("这是一个10");
        break;
    default:
        printf("什么也不是");
        break;
 }

break的作用:退出整个switch语句。默认情况下,只有一个case后的代码被执行,如果case后面没有break,就会执行满足条件的那行语句后所有case中的语句,直到遇到break为止。 若在case中定义变量,则必须用{}括起来。
if和switch的对比
1>  很多情况可以互换,switch能完成的功能,if都能完成。
2>   if用得比较多,比较灵活,switch只能某个单值,所以能用if就用if(if能完成的功能,switch并不一定能完成)。
三、循环结构-while
1. 结构
 while(条件)
{
        循环体;
}
2. 运行原理
1>  如果条件一开始就不成立,永远不会执行循环体;
2>  如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立……
3. 注意
while(条件); 即在后面加上“;”,也是可以的,只是每次运行一次while语句,执行一次空语句,然后再次进入while循环,容易产生死循环。while(1);是最简单的死循环。
循环结构-do while
1、  结构:
do{ 
}while(条件);
2、  特点:无论条件是否成立,一定会执行一次循环体。
3、  while和do while循环对比

int i=0;
while(i<0){
 i++;
}
int i=0;                                                                                                                                          do{ i++;} while(i<0);
  •  do while循环不论条件是否成立,一定会执行一次循环体,而wile循环只要条件不成立,就不会执行循环体。  很多情况下两者可以相互转换。

循环结构-for
1.    常用结构
for(语句1;条件;语句2)
{
        循环体;
}
2.    运行过程
语句1为初始化语句;语句2是增量语句(执行完循环体之后再次执行的语句)。在运行过程中,for一开始就会执行一次语句1(整个for循环只会执行一次语句1),然后判断条件是否成立,如果条件成立,就会执行一次循环体,然后再执行语句2,再次判断条件是否成立,然后再次执行语句2……。
初始化语句等可以是多句(把printf放到for的括号中)
3.    for循环嵌套
好友列表1
        好友1
        好友2
好友列表2
        好友1
        好友2
好友列表3
        好友1
        好友2

#include<stdio.h>
int main()
{
        int i,j;
for(i=1;i<=3;i++)
    {
         Print(“好友列表%d”,i);
         for(j=1;j<=2;j++)
        {
             printf(“   好友%d”,j);
        }
    }
      return0;
}

4.    注意事项
1>   死循环 for(;;);
2>   for循环体内部变量的作用域
3>   作用域混淆
for (int i = 0; i<5; i++)  int a =10;
5.    while循环和for循环的比较
 1>  可以互换
 2>  for循环的变量可以及时回收
break和continue
1.break语句
break语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句
一般形式:
              break;
注意:break语句不能用于循环语句和switch语句之外的任何其他语句中。
比如:

unsigned char i, j=50;
for(i=0;i<100;i++)
{
      if(i>j)break;
}
j=i;

当程序循环到i=51时,执行break语句,跳出for循环,开始执行j=i这条语句。
2.continue语句
作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。
一般形式:
        continue;
比如:

unsigned char i, j=50;
for(i=0;i<100;i++)
{
      if(i>j)continue;
      j=i;
}

当程序循环到i=51时,执行continue语句,结束本次循环,即不执行下面的j=i语句,而是执行i++,即i=52,故i<100,循环的条件成立,循环继续执行,直到i<100的条件不成立,for循环才终止。
continue与break的区别:
continue语句跳出本次循环,进入下一次循环体判断,只结束本次循环,而不是终止整个循环的执行。
break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。
1.continue只结束上一级本次循环,针对只是for  while两大类循环语句。
2.break结束上一级整个循环语句,可以是for while,还可以为swtich.
测试代码:    

 #include<stdio.h>
 #include<string.h>
     int main()
     {
       char i;
      for(i=0;i<5;i++){
             switch(i){
                 case0:printf("i=%d\n",i);break;
                 case1:printf("i=%d\n",i);break;
                 case2:printf("i=%d\n",i);break;
                 case3:printf("i=%d\n",i);continue;printf("ok\n");
                 case4:printf("i=%d\n",i);break;
                 default:printf("erro\n");
           }
           printf("abanda\n");
        }
    }

输出:
i=0
abanda
i=1
abanda
i=2
abanda
i=3
i=4
abanda 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值