IOS基础---C语言学习之流程控制

一、流程结构

C语言提供3种流程结构,分别是:

顺序结构:默认的流程结构。按照书写顺序执行每一条语句。

选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。

循环结构:在给定条件成立的情况下,反复执行某一段代码。

如下图所示:

 

二、选择结构 – if

1. 简单使用

1>     if (表达式)  语句1;

<strong>if(score>50) 

xxx;

</strong>


2>     if(表达式)  语句1;  else 语句2;

<strong>f(score >50) 

xxx; 

else

xxx;

</strong>

3>      if(表达式)  {  }

<strong>if(score >50) 

{

xxx;

} 

else

{

xxx;

}

</strong>

4>     if -else if-else

if(a==0)

{

    xxx;

}

else if (a>0)

{

    xxx;

} 

… …

else

{

    xxx;

}


特点:只有一个括号会被执行

 

2. 使用注意

1> 不要在if的小括号后面添加分号

2> 像a==0这样的表达式,最好写成0==a,若你误写成0=a,编译器会直接报错的

3> 直接写个if(a)是可以的,C语言默认所有大于0的值都为真

 

三、选择结构2-switch语句

1. 基本形式

switch(整型表达式)

{

    case 数值1:

        语句1;

        break;

    case 数值2:

        语句2;

        break;

    ... ...

    case 数值n:

        语句n;

        break;

    default :

        语句n+1;

        break;

2. 举例

int a = 10;

 switch (a) {

     case 0:

         printf("这是一个0");

         break;

     case 5:

         printf("这是一个5");

         break;

     case 10:

         printf("这是一个10");

         break;

     default:

         printf("什么也不是");

         break;

 }

3. break

1> break的作用

break关键字的作用是退出整个switch语句。默认的格式中,每个case后面都有个break,因此执行完case中的语句后,就会退出switch语句。

2> break的基本使用情况

如果某个case后面没有break,意味着执行完这个case中的语句后,会按顺序执行后面所有case和default中的语句,直到遇到break为止

3> break的特例

在某些时候,我们确实没有必要在每一个case后面添加break。下面举一个例子:判断分数的优良中差等级(100分满分)。

int score = 77;

switch (score/10) {

    case 10:

    case 9:

        printf("优秀");

        break; 

    case 8:

        printf("良好");

        break;     

    case 7:

    case 6:

        printf("中等");

        break; 

    default:

        printf("差劲");

        break;

}


分析:

当score的范围是90~100,score/10的值为10或9时,就会执行第6行代码,然后退出switch语句;

当score的范围是80~89,score/10的值为8时,就会执行第10行代码,然后退出switch语句;

当score的范围是60~79,score/10的值为7或6时,就会执行第15行代码,然后退出switch语句;

当score的范围并不是60~100,score/10的值并不在6~10范围内时,就会执行第19行代码,然后退出switch语句;

score的值是77,所以score/10的值是7,输出结果:中等

 

4. 在case中定义变量

有时候,我们可能会想在case中定义一些变量,这个时候,就必须用大括号{}括住case中的所有语句。

 

5. if和switch的对比

1> 其实if和swift在很多情况下可以互换

2> 在项目实战中,if用得比较多,比较灵活,switch只能某个单值,用的比较少

 

四、循环结构1-while循环

1. 形式

while ( 条件 )

{

    语句1;

    语句2;

    ....

}

2.举例

在屏幕上重复输出10次Hello World,每输出一次的换行。

int count = 0;

while ( count < 10 )

{

    printf("Hello World\n");

  

    count++;

}

3.注意

仔细看下面代码:

int count = 0;

 

while ( count < 10 );

{

    printf("Hello World\n");

   

    count++;

}


分析:

俗话说细节决定成败,仔细看,while后面不小心加了个分号,就变成死循环了,而且这种错误还不容易调试,所以,要注意!

 

五、循环结构2-do while循环

形式如下:

do {

    语句1;

    语句2;

    ...

 } while (条件);


使用do-while结构时,记得在最后加上一个分号;

不管while中的条件是否成立,循环体中的语句至少会被执行一遍;

其实do-while跟while是同一个循环,几乎所有情况他们都等价,只有一种情况,就是当条件完全不满足时,do-while会执行一次循环体,while不会执行,所以会导致结果不同,除了这个没其他特例了,剩下的就没什么好说的了,我一般不用这个;

 

六、循环结构3-for循环

for循环很常用,个人爱好。

1.形式

for (语句1; 条件; 语句2) {

     语句3;

     语句4;

     ...

}


执行过程:

先执行语句1一次,然后判断条件,条件满足执行循环体,然后执行语句2,再判断条件,再执行循环体,再执行语句2,如此循环。

 

2.举例

for (int i = 0; i<5; i++)

{

     printf("%d  ", i);

}

3.补充

如果for循环的初始化语句和循环一次后执行的语句是由多条语句组成的,就用逗号,隔开

for (int x = 0, y =0; x<3; x++, y+=2)

{

     printf("x=%d, y=%d \n", x, y);

}

4. for循环嵌套

for循环是可以嵌套的,而且很常用。

#include <stdio.h>

int main()

{ 

    for (int i = 1; i<=4; i++)

    {

        //printf("好友列表%d\n", i + 1);

        printf("好友列表%d\n", i);

       

        /*

        printf("    好友1\n");

        printf("    好友2\n");

        printf("    好友3\n");

        printf("    好友4\n");

        printf("    好友5\n");*/

       

        for (int j = 1; j<=7; j++)

        {

            printf("    好友%d\n", j);

        }

    }

   

    return 0;

}

5. 注意

1> 最简单的死循环 for(;;);

2> for循环内部定义的变量,作用域只在内部,for结束就销毁,包括那个i

 

6. while循环和for循环的比较

1> while循环和for循环在任何情况下都可以互换

2> for循环的好处在于循环结束可以及时销毁变量

 

七、break和continue

1. break

1> 使用场合:switch\循环结构

2> 循环嵌套下的break

2. continue

1> 使用场合:循环结构

2> 循环嵌套下的continue

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值