C语言——while循环

while循环

只要给定的条件为真,C 语言中的 while 循环语句会重复执行一个目标语句。


一、格式

while(condition)
{
   statement(s);
}
  • 其中表达式代表了循环条件,整个statements为循环体。
  • 条件为true时执行循环
  • 条件为false时,退出循环,执行while循环后的语句

while语句规范:
1:{和}自成一行
2:statements自动缩进

二、流程图

入口条件循环
C语言——while循环

  • 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) 会在条件被测试之前至少执行一次。

二、流程图

出口条件循环
C语言——while循环
这个过程会不断重复,直到给定条件变为假为止。

三、经典例题

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循环

  1. 格式
    do
    {
        statement(s);
        do
        {
            statement(s);
            ... ... ...
        }while (condition2);
        ... ... ...
    }while (condition1);
    
  2. 例题
    #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;
    }
    
上一篇:CTS2019


下一篇:解方程组x+y=2, xy-z^2=1