C语言程序设计(第四章循环结构)

C语言程序设计(第四章循环结构)

一、while语句实现循环
(1)while语句的一般形式:

while(表达式) 语句 ,其中语句就是循环体,只要循环条件为真(也就是表达式的条件成立),就执行循环体语句。

例题1:求从1累加到100
#include<stdio.h>
int main()
{
    int a=1,sum=0;
    while(a<=100){
        sum+=a;
        a++;
    }
    printf("sum=%d",sum);
    return 0;
}

运行结果:
	sum=5050
二、do……while语句实现循环
(1)do……while的一般形式:
do
	语句
while(表达式)
例题2:求从1累乘到10
#include<stdio.h>
int main(){
	int a=1,sum=1;
	do{
		sum*=a;
		a++;
	}while(a<=10);
	printf("sum=%d",sum);
	return 0;
}

运行结果:
	sum=3628800
三、使用while和do……while的区别
(1)while语句会先判断后执行,do……while先执行后判断
(2)当不满足循环条件时,while语句则不会进行循环,而do……while语句会至少执行一次
当我们放到代码中来看:
使用while语句
#include<stdio.h>
int main(){
	int a,sum=0;
	printf("请输入a的值:");
    scanf("%d",&a);
	while(a<=10){
        sum+=a;
        a++;
    }
    printf("sum=%d",sum);
    return 0;
}
运行结果1:
	请输入a的值: 1
	sum=55
	
运行结果2:
	请输入a的值: 11
	sum=0
使用do……while语句
#include<stdio.h>
int main(){
	int a,sum=0;
	printf("请输入a的值:");
    scanf("%d",&a);
	do{
        sum+=a;
        a++;
    }while(a<=10);
    printf("sum=%d",sum);
    return 0;
}

运行结果1:
	请输入a的值: 1 
	sum=55

运行结果2:
	请输入a的值: 11
	sum=11
四、使用for语句实现循环
(1)for循环语句的一般表达式:
for(表达式1;表达式2;表达式3)
	语句

**表达式1:**设置初始条件,只执行一次。可以为零个、一个或多个变量设置初始值(如:i=1)

**表达式2:**是循环条件的表达式,用来判定是否继续循环。在每次执行循环体前先执行此表达式,决定是否继续执行循环。

**表达式3:**作为循环条件的调整,例如使循环变量增值,它是执行完循环体后才进行的。

常用的for循环语句形式为:
for(循环变量赋初值;循环条件;循环变量初值)
	语句
	
for(i=0;i<=10;i++)
	sum+=i;
五、改变循环执行的状态
(1)使用break语句提前终止循环

用break语句可以使流程跳出switch结构,继续执行switch语句下面的一个语句。实际上,break语句还可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句。

例题3:在全系1000名学生中举行慈善募捐,当总数达到10万元时就结束,统计此时募捐的人数以及平每人捐款数目。
#include<stdio.h>
int main(){
	float total,aver,amount;
    int i;
    for(i=1,total=0;i<=1000;i++){
        printf("请输入捐款的金额:");
        scanf("%f",&amount);
        total+=amount;
        if(total>100000){
            break;
        }
    }
    aver=total/i;
    printf("捐款人数为%d,每人平均捐款%10.2f\n",i,aver);
    return 0;
}

执行结果:
请输入捐款的金额:10000
请输入捐款的金额:80000
请输入捐款的金额:10000
请输入捐款的金额:1
捐款人数为4,每人平均捐款  25000.25
(2)使用continue语句提前结束本次循环

有时并不希望终止整个循环的操作,而只希望提前结束本次循环,而接着执行下次循环。就可以使用continue语句。

例题4:要求输出100~200的不能被3整除的数。
#include<stdio.h>
int main(){
    int n;
    for(n=100;n<=200;n++){
        if(n%3==0)
        continue;
        printf("%d\t",n);
    }
    printf("\n");
    return 0;
}
例题5:输出4×5的矩阵
#include<stdio.h>
int main(){
    int i,j,n=0;
    for(i=1;i<=4;i++){
        for(j=1;j<=5;j++,n++){
            if(n%5==0){
            printf("\n");
            }
            printf("%d\t",i*j);
        }
    }
    printf("\n");
    return 0;
}

执行结果:
	1       2       3       4       5
	2       4       6       8       10
	3       6       9       12      15
	4       8       12      16      20
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跑不完的脚本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值