C语言循环结构详解

本文详细介绍了C语言中的while、for和do...while三种循环结构,包括它们的语句结构、循环方式和代码示例,帮助读者理解和掌握基本的循环控制。
摘要由CSDN通过智能技术生成

一.while 语句

1.语句结构

while循环语句是指当判定条件成立时,执行指定语句。
while循环语句的语法如下:

while(判定条件)
{
     循环体;
}

其中,判定条件可以是关系表达式(隐式关系表达式)或逻辑表达式,用于控制循环的次数,循环体可以为语句或语句块,为循环语句执行的具体内容。
判断条件不可以被省略

2.循环方式

while循环语句在每次循环时都要做一次条件判断,如果判断结果为真则进入循环,若为假,跳出循环

3.代码示例

代码示例(1)

#include <stdio.h>
#include <math.h> 
int main()
//一共有100个馍,大僧一个人分三个,小僧三个人分一个,求大僧和小僧各有多少人? 
{
	int i,sum;
	i=1; //存储大僧的数量,穷举法 
	while(i<=33)
	{
		if(i*3+(100-i)/3==100)
			printf("大:%d 小:%d",i,100-i);
		i++;
	}
	return 0;
} 

代码示例(2)

计算累加1-100的和
倒序计算

#include <stdio.h>
#include <math.h> 
int main()
{
//倒序计算(计算100-1的倒序和)
	int i,sum;
	i=100;
	sum=0; 
	while(i>=1)
	{
		sum=sum+i;
		i--;
	}
	printf("%d\n",sum);
	return 0;
} 

顺序计算

#include <stdio.h>
#include <math.h> 
int main()
{
//顺序计算(1-100的顺序和)
	int i,sum;
	i=1;
	sum=0; 
	while(i<=100)
	{
		sum=sum+i;
		i++;
	}
	printf("%d\n",sum);
	return 0;
} 

二.for 语句

1.语句结构

由初始条件,判断条件,迭代条件及循环体四个部分组成

for(初始条件;判断条件;迭代条件)
{
     循环体;
}

1)初始条件可以初始化环境,用于确定具体的起始循环环境。
(2)判断条件用于判断是否满足条件,如果满足,执行循环体,如果不满足,跳出循环。
(3)迭代条件用于改变参与判断条件的值,只有判断条件的值不断改变,才能推动循环语句的进行,避免陷入死循环。
(4)循环体就是指循环执行的具体内容。

2.流程

for循环语句在每次循环时都要做一次条件判断,如果判断结果为假,则跳出循环,如果为真继续循环

首先从初始条件进入循环语句。然后进行判断条件,进行判断如果为真则进入循环,循环结束则进行迭代条件,之后再次进入判断条件判断是否真假,依此类推,直至判断条件为假跳出循环

3.简化形式

for循环语句的简化形式是指将小括号中的初始条件与迭代条件省略,只保留判断条件 (但是分号不可略)

for(;判断条件;)
{
     循环体;
}

4.示例代码

示例代码(1)

#include <stdio.h>
#include <math.h> 
int main()
{
	//输入一个整数,求各位数的位数之和,例如:输入123,则输出6 
	int n,m,s;
	scanf("%d",&n);
	for(s=0;n>0;)
	{
		m=n%10;
		s+=m;
		n=n/10;
	}
	printf("%d\n",s);
	return 0;
} 

示例代码(2)

计算1-100的累加和

#include <stdio.h>
#include <math.h> 
int main()
{
	int i,s=0;
	for(i=1;i<=100;)
	{
		s+=i;
		i++;
	}
	printf("%d",s);
	return 0;
} 

三.do…while 语句

直到型循环是常用的循环结构形式。它是先运行循环体,在进行条件判断。这种形式中,如果满足条件,则再次运行循环体;如果不满足,则跳出循环体。简而言之,直到型循环就是先执行后判断。

1.语句结构

do-while循环语句是先执行循环体,直到判断条件不满足时结束循环。

do
{
     循环体
}while(判断条件)

其中循环体可以是单条语句也可以是语句块,会被直接执行;判断条件可以是关系表达式(隐式关系表达式)或逻辑表达式,且不可以被省略;判断条件后的分号代表do-while循环语句的结束,不可省略

do-while循环语句会先执行循环体,然后对判断条件进行判断。根据判定结果选择是否再次执行循环体。

do-while循环语句中的循环体至少会被执行一次

2.代码示例

代码示例(1)

求1–100的和

#include <stdio.h>
#include <math.h> 
int main()
{
	//求1-100的和 
	int s,i;
	i=1;
	s=0;
	do{
		s+=i;
		i++;
	} 
	while(i<=100);
	printf("%d\n",s);
	return 0;
} 

代码示例(2)

从键盘上输入一行字符,以回车结束,统计并输出其中包含的数字字符个数。

分析:

1.定义字符型变量ch,用于保存输入的字符。
2.定义整型变量count,用于保存数字字符的个数,并赋初值0.
3.输入一个字符,保存到变量ch中。
4.判断ch中的字符是否是数字字符,如果是数字字符,则count加1.
5.判断ch中的字符是否是换行符,如果不是换行符,则重复执行步骤3和步骤4.
6.输出变量count中保存的数字字符个数。

#include <stdio.h>
#include <math.h> 
int main()
{
	char ch;
	int count=0;
	do{
		ch=getchar();
		if(ch>='0' && ch<='9')
			count++;
	} 
	while(ch!='\n');
	printf("数字字符个数为:%d\n",count);
	return 0;
} 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值