【黑马程序员】C语言循环

来源:互联网 发布:java时间格式毫秒 编辑:程序博客网 时间:2024/06/07 06:46


------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


一、循环结构介绍


1、循环结构概述


循环结构简单来说就是:循环是一次又一次执行相同的代码块(条件满足的情况下)


2、构成循环结构的几个条件:

一般来说循环需要以下几个部分构成:

1.循环控制条件:循环退出的主要依据,来控制循环到底什么时候退出

2.循环体:循环的过程中执行的代码段

3.能够让循环结束的语句(递增,递减,真,假等)

能够让条件为假的依据,否则退出循环

二、while循环介绍及及基本格式


1、while循环的格式:

while(条件)

{


语句1;

语句2;

}


2、while循环使用方法:


1)while循环的特点

如果while中的条件一开始就不成立,那么循环体中的语句永远不会被执行


<span style="font-size:14px;">////  main.c//  判断从键盘输入一行字符的个数////  Created by Brisinga on 15/11/14.//  Copyright © 2015年 yan. All rights reserved.//#include <stdio.h>int main(int argc, const char * argv[]) {        char ch;  //用来接收用户输入的字符    int count=0;   //用来统计字符的个数    printf("请输入字符\n");    scanf("%c",&ch);    while (ch!='\n') {   //判断是否输入了换行        count++;        scanf("%c",&ch);    }        printf("您输入了%d个字符\n",count);  //输出统计的个数    return 0;}</span>

应用——游戏方向控制

使用while循环实现控制W上  A左  S下  D右


思路分析:

1)一直循环等用户输入

2)输入四个字符,打印对应的方向

switch


<span style="font-size:14px;">////  main.c//  游戏控制方向////  Created by Brisinga on 15/11/14.//  Copyright © 2015年 yan. All rights reserved.//#include <stdio.h>int main(int argc, const char * argv[]) {    //定义用户输入的方向    char ch;    int flag=1; //定义循环控制标志    //提示用户输入方向    printf("请输入方向\n");            while (flag) {        scanf("%c",&ch);   //接收用户输入的方向        switch (ch) {            case 'W':            case 'w':                printf("上\n");                break;            case 'a':            case 'A':                printf("左\n");                break;            case 's':            case 'S':                printf("下\n");                break;            case 'D':            case 'd':                printf("右\n");                break;            case 'q':            case 'Q':                printf("退出\n");                flag = 0;                break;            default:                break;        }    }    return 0;}</span>

应用:疯狂猜数游戏

使用随机数产生一个1—1000之间的数,给用户10此机会


<span style="font-size:14px;">////  main.c//  疯狂猜数////  Created by Brisinga on 15/11/14.//  Copyright © 2015年 yan. All rights reserved.//#include <stdio.h>#include <stdlib.h>int main(int argc, const char * argv[]) {    int count = 10; //定义竞彩的次数    int num; //定义用户输入的数    int lastNum = 0;  //保存上次精彩的数字    int ranNum = arc4random_uniform(1000)+1; //随机产生一个1-1000之间的数    while (count>0) {        printf("请输入一个1-1000之间的数字\n");        scanf("%d",&num);  //接收用户输入的数字        count--; //竞猜次数-1        if (num>ranNum) {            printf("上次竞猜:%d,本次竞猜:%d\n",lastNum,num);            printf("竞猜结果:猜大了!\n");            printf("剩余次数:%d\n",count);        }else if(num<ranNum){                    printf("上次竞猜:%d,本次竞猜:%d\n",lastNum,num);            printf("竞猜结果:猜小了!\n");            printf("剩余次数:%d\n",count);                }else{            printf("恭喜你猜对了!\n");            return 0;        }        lastNum = num;  //将本次竞猜的数字保存到lastNum中    }    printf("你太弱了!\n");        return 0;}</span>

三、do...while循环介绍及语法格式


1、do ... while循环的基本格式 

do { 

       语句1; 

        语句2;

          .... 

} while ( 条件 ); 

直到型循环:先执行循环体,然后判断条件,直到条件为假就结束 


2、do...while语句用法 

1)do...while语句的语义是: 


当执行到do-while循环时,首先会执行一遍循环体中的语句.接着判断while中的条件, 如果条件成立,就执行循环体中的语句。 如此循环 


2)do-while循环的特点: 不管while中的条件是否成立,循环体中的语句至少会被执行一遍 



四、for循环结构及执行过程


1.for循环的语法格式


一般形式: 

for(表达式1;表达式2;表达式3) {语句;} 

for循环的其他形式 

1)表达式省略(三个表达式都可以省略) for(; ;) 死循环 

2)循环控制无关的任意表达式 

表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,即包含一个以上 的简单表达 式,中间用逗号间隔。 

for(sum=0,i=1;i<=100;i++)sum=sum+i; 或for(i=0,j=100;i<=j;i++,j--)k=i+j; 



应用


<span style="font-size:14px;">////  main.c//  打印三角////  Created by Brisinga on 15/11/14.//  Copyright © 2015年 yan. All rights reserved.//#include <stdio.h>int main(int argc, const char * argv[]) {    for (int i=0; i<5; i++) {        for (int j=0;j<=i ; j++) {            printf("* ");        }        printf("\n");    }        for (int i=0; i<4; i++) {        for (int j=i;j<4 ; j++) {            printf("* ");        }        printf("\n");    }        for (int i=1; i<=6; i++) {        for (int j=0; j<6-i;j++) {            printf(" ");        }        for (int j=0; j<2*i-1; j++) {            printf("*");        }        printf("\n");            }    return 0;}</span>

<span style="font-size:14px;">////  main.c//  for循环嵌套打印乘法表////  Created by Brisinga on 15/11/14.//  Copyright © 2015年 yan. All rights reserved.//#include <stdio.h>int main(int argc, const char * argv[]) {    for (int i=1; i<10; i++) {//外层循环控制行数        for (int j=0; j<i; j++) {//里层for循环控制列数            printf("%d*%d=%d ",j+1,i,i*(j+1));                    }        printf("\n");    }    return 0;}</span>

五、break语句用法 

break语句通常用在循环语句和开关语句中。 当break用于开关语句switch中时,可使程序跳 出switch而执行switch以后的语句;如果 没有break语句,则将成为一个死循环而无法退 出。



六、continue 语句(结束本次循环,继续下次循环) 

用法 continue语句的作用是跳过循环体中剩余的语句而继续下一次。continue语句只用在 

for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。

<span style="font-size:14px;">//  把100~200之间的不能被3整出的数输出//  main.c//  continue的用法////  Created by Brisinga on 15/11/14.//  Copyright © 2015年 yan. All rights reserved.//#include <stdio.h>int main(int argc, const char * argv[]) {        //思路分析:    //for 循环,如果碰到能背3整出的数,就continue进入下次循环    //如果不能被三整出,则打印        for (int i=100; i<=200; i++) {        if (i%3==0) {            continue;        }        printf("%d\t",i);    }}
</span>


0 0
原创粉丝点击