while语句格式
格式:
while(表达式)
{
语句块
}
1、先执行while(表达式),如条件为真执行语句块;
2、执行完语句块,继续执行表达式;
3、知道表达式为假。就退出循环,执行while后面的代码。
例题1:用while语句,输出0-9的值。
代码:
#include <stdio.h>
int main (void)
{
int i=0; //初始条件i=0;
while(i<10) //while 循环
//while(表达式) 如果为真执行{ }里面语句块。
{
printf("i的值为:%d\n",i); //输出i的值
i++; //自增
}
return 0;
}
解释:
1、开始定义初始条件i=0;
2、开始进入while( i<10 )
循环,i=0;
条件成立,立即执行语句块内容,输出 i = 0;
再计算 i++;
i = 1;
3、进入while( i<10 )
; i = 1;
条件成立,立即执行语句块内容,输出 i = 1;再计算 i++;
i = 2;
4、重复上面的步骤,直到 i =10;
条件不成立时候,跳出循环,执行return 0
;
结果:
例题2:用while计算1-100的和
代码:
#include <stdio.h>
int main (void)
{
int i=0; //定义一个 i、sum 的初始条件;
int sum=0;
while(i<=100) //while 循环
{
sum += i; //语句块 条件
i ++;
}
printf("1-100的和:%d\n",sum); //求和
return 0;
}
解释:
1、开始运行while(i <=100); 因为 i=1,i<=100 成立,所以会执行循环体;执行结束后 i ++ ; i 的值变为 2,sum 的值变为 1。
2、while循环继续判断 i<=100是否成立,因为此时 i=2,i<=100 成立,所以继续执行循环体;执行结束后 i ++ ; i 的值变为 3,sum 的值变为3。
3、重复执行步骤 2。当循环进行到第100次,i 的值变为 101,sum 的值变为5050;因为此时 i<=100 不再成立,所以就退出循环,不再执行循环体,转而执行while循环后面的代码。
结果:
例题3:经典题目水仙花数
(从0至999之间各个位数的立方和等于本身的数等于水仙花数)
代码:
#include <stdio.h>
int main (void)
{
int i=0; //定义初始值数
int a,b,c; //定义个位数百位数
while( i<=999) //条件
{
//开始拆解个位、十位、百位;
a = i/100; //百位
b = i/10%10; //十位
c = i%10; //个位
if (a*a*a+b*b*b+c*c*c == i) //if语句判断条件
{
printf("水仙花:%d\n",i); //为真输出语句块
}
i++; //再计算i,后面返回while
}
return 0;
}
解释:
1、开始确定区间【0-999】
2、开始执行 i = 0;条件成立,执行语句块内容,拆解i的个位百位数,在用if语句判断是否成立,成立就输出i;
3、判断i的值,拆分个位十位百位;a = i/100; //百位; b = i/10%10; //十位;c = i%10; //个位
4、重复上面的操作,直到i=1000时,条件不成立,直接跳出while循环,运行while下面的语句。
结果: