前言
C语⾔提供了3种循环语句,while、do- while和for循环语句。循环结构是结构化程序设计的基本结构之一,因此熟练掌握循环结构是程序设计的基本要求。
while语句
使用while语句可以执行循环结构,其一般形式如下:
while(表达式)
语句;
while语句的执行流程图如图所示。
while语句首先检验一个条件,也就是括号中的表达式。当条件为真时,就执行紧跟其后的语句或者语句块。每执行一遍循环,程序都将回到while语句处,重新检验条件是否满足。如果一开始条件就不满足,则跳过循环体中的语句,直接执行后面的程序代码。如果第一次检验时条件满足,那么在第一次或其后的循环过程中,必须有使得条件为假的操作,否则循环无法终止。
无法终止的循环常被称为死循环或者无限循环。
例如
while (i < 100)
{
i = 1 + i;
}
在这段代码中,while语句首先判断i变量是否小于常量100,如果小于100,为真,那么执行紧跟其后的语句块;如果不小于100,为假,那么跳过语句块中的内容直接执行下面的程序代码。在语句块中,可以看到对其中的变量进行加1的运算,这里的加1运算就是循环结构中使条件为假的操作,也就是使得 i不小于100,否则程序会一直循环下去。
例题
计算1累加到100的结果
#include<stdio.h>
int main()
{
int i = 0;
int sum = 0;
while (i <= 100)
{
sum = i + sum;
i++;
}
printf("%d\n", sum);
return 0;
}
使用while语句判断i是否小于等于100,如果条件为真,则执行其后语句块中的内容;如果条件为假,则跳过语句块执行后面的内容。初始i的值为0,判断的条件为真,因此执行语句块。当i大于100时,循环操作结束,将结果sum输出。
练习
输⼊⼀个正的整数,逆序打印这个整数的每⼀位 例如: 输⼊:1234,输出:4 3 2 1 输⼊:521,输出:1 2 5
先思考一下哦
分析
要实现逆序输出,先分析一下题目。
1. 要想得到n的最低位,可以使⽤n%10的运算,得到的余数就是最低位,如:1234%10得到4
2. 要想去掉n的最低位,找出倒数第⼆位,则使⽤ n=n/10 操作就可以去掉最低位的,如n=1234/10得到123,123相较于1234就去掉了最低位,123%10就得到倒数第⼆位3。
3. 循环1和2两个步骤,在n变成0之前,就能到所有的位。
代码如下:
#include<stdio.h>
int main()
{
int i = 0;
scanf("%d", &i);
while (i)
{
printf("%d ", i % 10);
i = i / 10;
}
return 0;
}