C语言学习笔记之(while和do-while循环)
一、while循环
1.语言格式
while(条件)
循环语句;
循环语句;
2.其他格式
while(1) #当条件永远为真时,就会一直循环下去,这也就是死循环
循环语句;
循环语句;
3.例子:输入整数n的值,求S=1+2+3+…+n的值。
#include <stdio.h>
int main()
{
int i,n,S; /*定义变量*/
printf("请输入n的值:"); /*输出提示语*/
scanf("%d",&n); /*输入n的值*/
i=1; /*给i赋初值*/
S=0; /*给S赋初值*/
while(i<=n) /*循环,当i>n时结束*/
{
S+=i; /*求和,将结果放入S中*/
i++; /*循环控制变量i加1*/
}
printf("S=%d\n",S); /*输出S的值*/
return 0;
}
4.使用while语句输入一串字符,以“#”结束,输出其中小写字母个数、大写字母个数以及数字个数。
#include <stdio.h>
int main()
{
char c;
int num1=0,num2=0,num3=0;;
printf("请输入一串字符以“#”结束:");
scanf("%c",&c); /*输入一个字符*/
while(c!='#') /*当输入#时,退出循环*/
{ /*开始循环*/
if(c>='a'&&c<='z') /*如果是小写字母num1加1*/
num1++;
else if(c>='A'&&c<='Z') /*如果是大写字母num2加1*/
num2++;
else if(c>='0'&&c<='9') /*如果是数字num3加1*/
num3++;
scanf("%c",&c); /*输入一个字符*/
}
printf("小写字母:%d个\n大写字母%d个\n数字%d个\n",num1,num2,num3);
return 0;
}
二、do-while循环
1.语句格式
do
循环语句;
循环语句;
while(条件); /*注意这里有结束符*/
2.其他格式
do
循环语句;
循环语句;
while(1); /*注意这里有结束符*/ /*当条件永远为真时就是死循环*/
3.例子:用do-while语句求S=1+2+3+…+n的值。
#include <stdio.h>
int main()
{
int i,n,S; /*定义变量*/
printf("请输入n的值:"); /*输出提示语*/
scanf("%d",&n); /*输入n的值*/
i=1; /*给i赋初值*/
S=0; /*给S赋初值*/
do /*开始循环*/
{
S+=i; /*求和*/
i++; /*循环控制变量i加1*/
}while(i<=n); /*当i>n时结束*/
printf("S=%d\n",S); /*输出S的值*/
return 0;
}
4.例子:用do-while语句输入一串字符,以“#”结束,输出其中小写字母个数、大写字母个数以及数字个数。
#include <stdio.h>
int main()
{
char c;
int num1=0,num2=0,num3=0;;
printf("请输入一串字符以“#”结束:");
do{ /*开始循环*/
scanf("%c",&c); /*输入一个字符*/
if(c>='a'&&c<='z') /*如果是小写字母num1加1*/
num1++;
else if(c>='A'&&c<='Z') /*如果是大写字母num2加1*/
num2++;
else if(c>='0'&&c<='9') /*如果是数字num3加1*/
num3++;
}while(c!='#'); /*当输入#时,退出循环*/
printf("小写字母:%d个\n大写字母%d个\n数字%d个\n",num1,num2,num3);
return 0;
}
三、while和do-while的区别
| 特性 | while | do-while |
|---|---|---|
| 判断时机 | 先判断条件,再执行循环体 | 先执行循环体,再判断条件 |
| 最少执行次数 | 可能 0 次 | 至少 1 次 |
| 语法 | while (条件) 语句; | do 语句; while (条件); |
| 结尾分号 | 不需要特殊分号 | while(条件); 末尾必须有分号 |
| 适用场景 | 循环可能一次都不执行 | 循环至少执行一次,如输入校验、菜单 |
C语言学习笔记之(while和do-while循环)
https://www.wsjj.top/archives/c8
评论