从零开始跟我学 C 语言之循环结构(下)

2023-02-28 00:00:00 语句 循环 循环体 字符 渔火

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

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

#include<stdio.h>//2023.2.5渔火 Linux迷 www.linuxmi.comint main(){  int d,l,o;  char ch;  d=l=o=;  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 ;}
运行结果如下://随便输入字母字符数字
分析:按照题意,由键盘输入一行字符是一个重复的动作,每输入一个字符都需要判断属于哪种字符,分别进行统计。若输入的是一个回车符时,程序运行结束。(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.comint 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!=);   printf("%d和%d的大公约数是:%d\n",m,n,a);   printf("小公倍数是:%d",m*n/a);          //2023.2.5渔火 Linux迷 www.linuxmi.com  return ;}
运行结果如下://输入12 72

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

#include<stdio.h>//2023.2.5渔火 Linux迷 www.linuxmi.comint main(){  long n,m;  int count=;  printf("请输入一个整数:");  scanf("%ld",&n);  m=n;  if(n<)n=-m;  do{    n=n/10;    count++;  } while(n!=);  printf("整数%ld有%d位数\n",m,count);            //2023.2.5渔火 Linux迷 www.linuxmi.com   return ;}
运行结果如下://输入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.comint main(){  int i,n=1;  for(i=1;i<=100;i++)  {    if(i%7!=)      continue;    printf("%4d",i);    if(n++%5==)printf("\n");  }          //2023.2.5渔火 Linux迷 www.linuxmi.com  return ;}
在C语言中,还有一种可以实现循环控制的语句,即goto语句。goto语句的一般形式如下:goto语句标号;。
说明:语句标号是一个有效的标识符,使用时在语句的后面跟一个“;”出现在函数中某语句的前面。程序执行到goto语句时,会控制跳转到该语句标号处,达到控制循环的目的。语句标号必须与goto语句处于同一个函数中。通常goto语句与if语句连用实现循环控制。大型程序中由于goto语句可能存在不合理的使用,会使程序结构变坏,所以结构化程序设计中,不建议使用goto语句。

相关链接:

  1. https://www.linuxmi.com/learn-c-language-from-scratch-1.html

  2. https://www.linuxmi.com/learn-c-language-from-scratch-2.html

  3. https://www.linuxmi.com/learn-c-language-from-scratch-3.html

  4. https://www.linuxmi.com/learn-c-language-from-scratch-4.html

  5. https://www.linuxmi.com/learn-c-language-from-scratch-5.html



来自:Linux迷
链接:https://www.linuxmi.com/c-language-cyclic-structure-2.html

相关文章