Day-16【选择与循环】04循环结构while
目录
一、概述
二、while语句(先判断后执行)
三、do~while 语句
一、概述
循环结构的概念:在条件成立时,反复执行某个程序段,这种程序结构称为循环结构,反复被执行的程序段称为循环体,这个条件称为循环条件
C语言可实现循环语句:
(1)while语句
(2)do~while语句
(3)for语句
二、while语句(先判断后执行)
一般形式:
while(表达式) 表达式可以是任意表达式 0为假,非0为真
{
循环体语句; //当循环体语句只有一句话时,不加{}
}
例如:
用while循环求1-100累加求和
#include <stdio.h>
main()
{int i,sum=0;i=1; //循环初值while(i<=100) //循环条件、循环终值{sum=sum+i; //循环体i++; //循环变量增值、步长}printf("%d",sum);
}
第二个算法:
辗转相除法求两个数的最大公约数
辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。
以除数和余数反复做除法运算,当余数为0时,取当前算式除数为最大公约数。
被除数a 除数b 余数
较大 较小
18 ÷ 12=1 .......6
12 ÷ 6 =2 ........0直到余数为0时停止除法运算
逻辑图:
例如:
#include <stdio.h>
void main()
{int a,b,c;int t;scanf("%d%d",&a,&b);if(a<b){t=a;a=b;b=t;}c=a%b;while(c){a=b;b=c;c=a%b;}printf("最大公约数为:%d",b);
}
三、do~while 语句
一般形式:
do
{ 循环体语句; }
循环条件:注意此处的分号不能省略,是结构体的一部分。
while(循环条件);
例:
还是写出1-100的累加
#include <stdio.h>
void main()
{int i=1,sum=0;do{sum+=i;i++;}while(i<101);printf("%d",sum);
}