关闭

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

标签: c语言循环分支
131人阅读 评论(0) 收藏 举报
分类:


------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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6292次
    • 积分:264
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档