文章目录
前言
系统是64位Windows系统,编译器是MinGW64;
本文注重于基础教学,适合于刚接触循环不久的同学,所以会显得有点啰嗦。有基础的同学可以当做复习来看;有什么意见也欢迎留言告诉我;
一、while循环
while (判断语句)
{
循环体;
}
执行步骤:
1.首先测试圆括号中的条件;
2.如果条件为真,则执行循环体;然后再重新测试圆括号中的条件;
3.如果为真,则再次执行循环体;
4.当圆括号中的条件测试结果为假时,循环结束;
一句话总结:先判断真假,再执行循环体;
下面是流程图:
看个例子:求1+2+3+4+…+100的和:
#include <stdio.h>
int main(int argc, char const *argv[])
{
int num = 0;
int sum = 0;
while (num <= 100)
{
sum = sum + num;
num = num + 1;
}
printf("sum = %d\n", sum);
return 0;
}
输出结果为:
sum = 5050
把这个例子与上面的流程图结合起来看,尽量详细一点:
首先:我们先把流程图和代码一一对应起来:
我们再把初始值带进去:
此时的循环条件为:0 <= 100;,条件为真,也就是表达式成立,所以执行循环体,执行完之后
sum = 0;
num = 1;
将值带入再次进行判断;只要条件为真,就一直重复执行循环体;
那么循环什么时候结束呢?很显然只要循环条件为假,即表达式不成立时,循环结束;也就是说当num增长到101时,循环结束;
对应的流程图如下:
可以看到此时的循环条件为:101 <= 100,很显然这个表达式不成立,也就是循环条件为假,循环结束;所以此时的输出为:
sum = 4950 + 100;
num = 100 + 1;
所以循环结束之后的输出为:
sum = 5050;
我们把num和sum从头开始进行输出,来验证一下是否正确;
程序如下:
#include <stdio.h>
int main(int argc, char const *argv[])
{
int num = 0;
int sum = 0;
while (num <= 100)
{
sum = sum + num;
num = num + 1;
printf("sum = %d \t num = %d\n", sum, num);
}
return 0;
}
输出为:
sum = 0 num = 1
sum = 1 num = 2
sum = 3 num = 3
sum = 6 num = 4
sum = 10 num = 5
sum = 15 num = 6
sum = 21 num = 7
sum = 28 num = 8
sum = 36 num = 9
sum = 45 num = 10
sum = 55 num = 11
sum = 66 num = 12
sum = 78 num = 13
sum = 91 num = 14
sum = 105 num = 15
sum = 120 num = 16
sum = 136 num = 17
sum = 153 num = 18
sum = 171 num = 19
sum = 190 num = 20
sum = 210 num = 21
sum = 231 num = 22
sum = 253 num = 23
sum = 276 num = 24
sum = 300 num = 25
sum = 325 num = 26
sum = 351 num = 27
sum = 378 num = 28
sum = 406 num = 29
sum = 435 num = 30
sum = 465 num = 31
sum =