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

原创 2015年11月17日 16:22:48


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


版权声明:本文为博主原创文章,未经博主允许不得转载。

黑马程序员——C语言基础篇---基础语法

黑马程序员学习日志,C语言的基础学习
  • liufeng124
  • liufeng124
  • 2015年04月13日 22:10
  • 521

黑马程序员——c语言学习---第一个程序

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------  从今天开始我漫长的编程之旅,提前预祝自己成功! 1、开发条件 a、mac...
  • qq_25842885
  • qq_25842885
  • 2015年02月05日 12:46
  • 360

黑马程序员_C语言循环

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------循环是C语言的三种基本结构之一,在很多问题中都需要用到循环控制,如1~100之间不能够被7整除的数...
  • zjjtilm
  • zjjtilm
  • 2015年11月30日 14:30
  • 129

黑马程序员C/C++——2016势如破竹,2017乘风破浪!

一、回望2016,火力全开的C/C++学院接连创造辉煌! 0105C/C++就业班在毕业16日的时候,就业人数过半,最可怕的是薪资过万的同学比例逼近80%!北上广深平均薪资达到11365元! ...
  • itcast_cn
  • itcast_cn
  • 2017年01月19日 16:05
  • 1735

黑马程序员:各学科学习路线图,简直是厉害了word哥

1999年的一部电影《一个都不能少》火了一句话“一个都不能少”!2016年,黑马程序员走心出品,全学科学习路线图。今天,我们也做到了,一个都不能少!差一个都那不叫完美。(此处无图,请自觉脑补)今天我们...
  • itcast_cn
  • itcast_cn
  • 2016年11月10日 13:57
  • 1712

c语言循环练习题

4.1.1 //从键盘上接收两个整数,输出这两个整数中值大的一个。 int a=0,b=0;   printf("请输入两个数");   fflush(stdout);   scanf("%...
  • tangshang1234
  • tangshang1234
  • 2013年03月05日 19:52
  • 1427

C语言中的三大循环

一、C语言中的三大循环包括:while循环、do-while循环和for循环 1、while循环 形式:         while(表达式)         {} 执行:        ...
  • Dreamer_mo
  • Dreamer_mo
  • 2016年01月17日 21:43
  • 662

C语言 if分支与循环语句

C语言 if分支与循环语句(1)////  main.c//  C_02////  Created by on 15/11/26.//  Copyright © 2015年 Kiwir. All ri...
  • kiwirr
  • kiwirr
  • 2015年12月01日 19:18
  • 1344

黑马程序员 - C语言 -分支、循环

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-一.结构类型(1)顺序结构:程序按书写顺序进行读取编译。(2)选择结构:程序根据所给条件,判断真假,从而在真假两种...
  • gd362660870
  • gd362660870
  • 2015年12月18日 18:03
  • 149

C语言三种循环用法和区别

C语言三种循环用法和区别 内容 稍后
  • sardine_c
  • sardine_c
  • 2015年10月25日 22:35
  • 11628
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【黑马程序员】C语言循环
举报原因:
原因补充:

(最多只允许输入30个字)