1、while语句格式
格式:
while(表达式)
{
语句块
}
1、先执行while(表达式),如条件为真执行语句块; 2、执行完语句块,继续执行表达式; 3、知道表达式为假。就退出循环,执行while后面的代码。
例题1:用while语句,输出0-9的值。
代码:
#include <stdio.h>
int main (void)
{
int i=0;
while(i<10)
{
printf("i的值为:%d\n",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;
int sum=0;
while(i<=100)
{
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)
{
printf("水仙花:%d\n",i);
}
i++;
}
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下面的语句。 结果:
|