C 语言之循环结构(下)

Hi!这里是渔火。今天我们来讲用while语句和do-while语句实现循环结构。

在C语言中,使用while语句完成不定次数的循环,如果满足循环条件,则反复执行循环体语句,当循环条件不满足时退出循环。while语句在使用时,总是先要判断一个条件,使用可以用while语句实现“当型”循环。while语句的一般形式如下:while(表达式)循环体;。接下来我们来看一个例子。

【由键盘输入一串字符,分别统计输入字符中数字字符、字母字符以及其他字符的个数。】

#include<stdio.h>
//2023.2.5渔火 Linux迷 www.linuxmi.com
int main()
{
	int d,l,o;
	char ch;
	d=l=o=0;
	printf("请输入一串字符:");
	while((ch=getchar())!='/n')
		if((ch>='0')&&(ch<='9'))
			d++;
		else if ((ch>='a')&&(ch<='z')||(ch>='A')&&(ch<='Z'))
			l++;
		else 
			o++;
	printf("数字%d个,字母%d个,其他%d个/n",d,l,o);
					//2023.2.5渔火 Linux迷 www.linuxmi.com
	return 0;
}

运行结果如下://随便输入字母字符数字

分析:按照题意,由键盘输入一行字符是一个重复的动作,每输入一个字符都需要判断属于哪种字符,分别进行统计。若输入的是一个回车符时,程序运行结束。(ch=getchar())!='/n' 不能写成ch=getchar()!='/n' 两者不等价。循环体为为一条完整的if语句,若有多条语句时,必须使用复合语句的形式。while后面的括号“()”不可省略。

在C语言中,do-while语句也用于完成不定次数的循环,与while语句不同的是,do-while语句首先执行一次循环体,然后判断循环条件,如果满足,则反复执行循环语句,否则结束循环。do-while语句的一般形式如下:do 循环体 while(表达式);。接下来我们来看两个例子。

【求自然数的最大公约数和最小公倍数】

#include<stdio.h>
//2023.2.5渔火 Linux迷 www.linuxmi.com
int main()
{
	int a,b,r,n,m;
	printf("请输入两个整数:");
	scanf("%d%d",&a,&b);
	m=a,n=b;
	do
	{
		r=a%b;
		a=b;
		b=r;
	 } while(r!=0);
	 printf("%d和%d的最大公约数是:%d/n",m,n,a);
	 printf("最小公倍数是:%d",m*n/a);
					//2023.2.5渔火 Linux迷 www.linuxmi.com
	return 0;
}

运行结果如下://输入12 72

【输入一个整数,统计该数的位数】

#include<stdio.h>
//2023.2.5渔火 Linux迷 www.linuxmi.com
int main()
{
	long n,m;
	int count=0;
	printf("请输入一个整数:");
	scanf("%ld",&n);
	m=n;
	if(n<0)n=-m;
	do{
		n=n/10;
		count++;
	} while(n!=0);
	printf("整数%ld有%d位数/n",m,count);
						//2023.2.5渔火 Linux迷 www.linuxmi.com 
	return 0;
}

运行结果如下://输入1235698

许多时候当循环结构中出现多个循环条件时,要求当某个条件满足时会立即结束循环,或者循环结构中根据条件会跳过某些语句继续循环,这就要在循环结构中配合使用break语句和continue语句。

break语句的一般形式如下:break;。当break语句用于循环语句中时,可使程序终止循环而转去执行循环语句的后继语句。通常break语句总是与if语句一起配合使用,即满足条件时便跳出循环。

continue语句的作用是跳过循环体continue后面的语句,继续下一次循环。continue语句只能用在循环语句中,常与if语句一起使用。continue语句的一般形式如下:continue;。我们来看一个用到continue语句的程序设计。

【把1~100之间能被7整除的数,以每行5个的形式在屏幕上输出。】

#include<stdio.h>
//2023.2.5渔火 Linux迷 www.linuxmi.com
int main()
{
	int i,n=1;
	for(i=1;i<=100;i++)
	{
		if(i%7!=0)
			continue;
		printf("%4d",i);
		if(n++%5==0)printf("/n");
	}
					//2023.2.5渔火 Linux迷 www.linuxmi.com
	return 0;
}

在C语言中,还有一种可以实现循环控制的语句,即goto语句。goto语句的一般形式如下:goto语句标号;。

说明:语句标号是一个有效的标识符,使用时在语句的后面跟一个“;”出现在函数中某语句的前面。程序执行到goto语句时,会控制跳转到该语句标号处,达到控制循环的目的。语句标号必须与goto语句处于同一个函数中。通常goto语句与if语句连用实现循环控制。大型程序中由于goto语句可能存在不合理的使用,会使程序结构变坏,所以结构化程序设计中,不建议使用goto语句。

The post C 语言之循环结构(下) first appeared on Linux迷.

版权声明:
作者:玉兰
链接:https://www.techfm.club/p/40020.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>