while循环
只要给定的条件为真,C 语言中的 while 循环语句会重复执行一个目标语句。
一、格式
while(condition)
{
statement(s);
}
- 其中表达式代表了循环条件,整个statements为循环体。
- 条件为true时执行循环
- 条件为false时,退出循环,执行while循环后的语句
while语句规范:
1:{和}自成一行
2:statements自动缩进
二、流程图
入口条件循环
- while 循环的关键点是循环可能一次都不会执行。当条件为 false 时,会跳过循环主体,直接执行紧接着 while 循环的下一条语句。
- 使用while(true)的时候,需要在合适的时候,用break退出,不然就是死循环。
三、经典例题
输入一个数,判断它是几位数
#include <stdio.h>
int main( void )
{
int num;
int count = 1;
scanf("%d",&num);
while(1)
{
if(num/10 != 0)
{
num = num/10;
count++;
}
else
{
printf("你输入的数是%d位数",count);
break;
}
}
}
输入一个数,判断它是素数
#include <stdio.h>
int main()
{
int n,i;
scanf("%d", &n ); //输入一个数
i=2;
while( i<n ) //从2到n检查是否有因数
{
if ( n%i == 0 ) //如果有因数则退出循环
break ;
i++;
}
if ( i>=n ) //如果循环完整了,从2到n无因数,则是素数
printf("%d是素数\n", n );
else
printf("%d不是素数\n", n ); //提前退出循环,i一定小于n
return 0;
}
四、嵌套的while循环
while(condition)
{
statement(s);
while(condition)
{
statement(s);
}
}
do…while循环
do…while 循环在循环的尾部检查它的条件,do…while 循环会确保至少执行一次循环。
一、格式
do
{
statement(s);
}
while( condition );
- 先执行一次指定的循环体语句,然后判别表达式,当表达式的值为真(非0)时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束。其特点是:先执行循环体,然后判断循环条件是否成立
- 循环中的 statement(s) 会在条件被测试之前至少执行一次。
二、流程图
出口条件循环
这个过程会不断重复,直到给定条件变为假为止。
三、经典例题
1-100数之和
#include <stdio.h>
void main()
{
int i,sum=0;
i=1;
do
{
sum=sum+i;
i++;
}
while(i<=100);
printf("%d\n",sum);
}
猜数字
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand(time(0));
int number = rand()%100+1; //设出一个100以内的数
int count = 0;
int a = 0;
printf("我已经想好了一个1到100之间的数。");
do
{
printf("猜猜这个数是什么:");
scanf("%d", &a);
count ++;
if(a > number)
{
printf("你猜的数大了。\n");
}
else if(a < number)
{
printf("你猜的数小了。\n");
}
}
while (a != number);
printf("太棒了,你只用了%d次就猜对了。 \n",count);
return 0;
}
四、嵌套的do…while循环
-
格式
do { statement(s); do { statement(s); ... ... ... }while (condition2); ... ... ... }while (condition1);
-
例题
#include <stdio.h> int main() { int i=1,j; do { j=1; do { printf("*"); j++; }while(j <= i); i++; printf("\n"); }while(i <= 5); return 0; }