循环控制结构

本文深入解析C语言中的循环控制结构,包括while、do-while和for语句的使用场景与区别,嵌套循环及条件控制循环的应用,以及通过实例讲解如何利用循环解决实际问题,如画矩形和统计数字特征。

第六章 循环控制结构

三种循环语句:for,while,do–while.

1.while语句与do–while语句

whilr语句属于当型循环,do–while语句属于直到型循环.

while语句的一般形式为:

while(循环控制表达式)

{           

  语句序列

}

若循环控制表达式为真,则执行循环体中的语句,若循环控制表达式为假,就是退出循环,执行循环体后面的语句.

di-while语句的一般形式为:

do

{

  语句序列

}

先执行循环体中的语句,若循环控制表达式为真,则执行循环体中的语句,若循环控制表达式为假,就是退出循环,执行循环体后面的语句.

二者区别:do–while语句中的循环控制表达式是在执行循环体之后测试的,故do–while语句中循环体内的语句至少被执行一次.

2.for语句

for语句属于当型循环结构,其一般形式为:

for(初始化表达式(赋初值);循环控制表达式(循环控制条件);增值表达式(变量增值))     ↓             ↓          ↓

{         

   语句序列

}

1)三个表达式之间的分隔符是分号,而且只有两个分号,既不能多,也不能少.

2)例如课本例6.1,计算并输出1+2+3+.....+n的值中,给sum赋初值,令sum=0,其必须在循环语句前并且挨着循环语句.

若(循环次数次数已知,计数控制)的循环用for语句

若(循环次数未知,条件控制)的循环用while语句

4)for语句后面一般不加分号

3.嵌套循环

执行嵌套语句时,先由外层循环进入内层循环,在内层循环终止之后接着执行外层循环,再由外层循环进入内层循环当外层循环全部终止时,程序结束。

4.条件控制的循环

1)随机函数rand()

标准C规定RAND_MAX的值不大于双字节整数的最大值32767.

若想改变其范围:①利用求余运算rand()%b将函数rand()生成的随机数变化到[0,b-1]之间.②利用rand()%b+a将随机数的取值范围平移至[a,a+b-1]之间.

5.c语言中用于控制流程转移的跳转语句有:

goto语句,break语句,coutinue语句,return语句

break语句:当执行循环体遇到break语句时,循环立即终止。

感受:通过做循环结构的题,从中找到了一些做题的方法,例如画矩形问题和蛋糕裱花问题是一类题目,都运用了:用i和j来表示直线方程,从而找到i和j的关系;还有敲七,有多少位是7,含k个3的数等问题也是一个类型,其中都用到了:用整数除法和求余运算来分离该数中的每一位数。

例1,画矩形问题

#include<cstdio>

#include<iostream>

#include<iomanip>

#include<cmath>

using namespace std;

int main()

{

    int a,b,d,i,j;

char c;

scanf("%d %d %c %d",&a,&b,&c,&d);

for(i=1;i<=a;i++)

{

for(j=1;j<=b;j++)

{

if(d==1)

printf("%c",c);

if(d==0)

 {

     if(i>1&&i<a&&j>1&&j<b)

   printf(" ");

   else

   printf("%c",c);

  }

}

        printf("\n");

}

return 0;

}

例2,有多少位是7问题

#include<cstdio>

#include<iostream>

#include<iomanip>

#include<cmath>

using namespace std;

int main()

{

    int a,n;

    n=0;

    scanf("%d",&a);

    if(a/1000==7) n+=1;

    if((a-(a/1000)*1000)/100==7) n+=1;

    if((a-(a/100)*100)/10==7) n+=1;

    if(a%10==7) n+=1;

    printf("%d",n);

    return 0;

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值