接下来 我们来说 循环控制结构
循环的基本原理及循环语句
再说原理之前 我们 先来看几个案例
要求是 让用户在键盘中输入三个整数 然后将这些整数求和
这个用我们之前的知识就能轻松搞定
#define _CRT_SECURE_NO_WARNINGS//禁用安全函数警告
#pragma warning(disable:6031)//禁用 6031 的安全警告
#include <stdio.h>int main() {int a;int b;int c;scanf("%d", &a);scanf("%d", &b);scanf("%d", &c);int n = (a + b + c);printf("三个数的和为%d",n);return 0;
}
这里 我们用了三个 scanf 给 a b c 三个变量赋值
然后将它们相加 形成 n
然后输出内容
我们运行代码
控制台中 先后输出 2 3 4
输出内容中 计算无误 9
那么 如果是十个呢?
要写十个scanf吗?
或者 我们可以用下图方式解决 写在同一个 scanf当中
但是 这种方式显然不是最优解 因为 如果更多 看着就比较乱了
其实 分析问题本质 就是需要寻找一个 将 scanf 语句执行N次的方式
重复执行 N 次某动作 这个概念就是 循环
所谓循环,就是在给定条件成立的情况下,重复执行一个程序段;给定条件不成立时,退出循环,再执行循环下面的程序。
循环语句
C语言 为我们提供了 三种循环语句
while 语句
表达式如下
运行流程图如下
简单说 每次执行都会进行一次判断 就是我们图中的表达式 如果条件为真 条件成立 就继续循环 条件不成立 为假了之后 就走出来不再循环了
它的特点是先判断条件 然后再执行循环中的语句
我们就用while循环来完成我们之前说的 输入10个整数 然后求和的案例
代码如下
#define _CRT_SECURE_NO_WARNINGS//禁用安全函数警告
#pragma warning(disable:6031)//禁用 6031 的安全警告
#include <stdio.h>int main() {int number, i, sum;sum = 0;i = 1;while (i <= 10) {scanf("%d", &number); // 修正了 scanf 的括号和逗号使用sum = sum + number;i = i + 1;}printf("%d\n", sum); // 修正了 printf 的括号使用return 0;
}
运行之后 我们依次输入 1 2 3 4 5 6 7 8 9 10
运行结果 55 计算正常
来讲讲逻辑 我们开始定义了 三个整数类型的变量 number i sum
然后 我们定义 sum 为0
i 为1
while 条件 如果 i 小于或者等于 10 就继续执行
while 中 我们编写 scanf 让用户输入一个整数 赋值给 number
然后 将sum 重新赋值 结果为 sum 与 number相加 就是总数与用户输入的数相加
然后 将i 加一
走出循环后 执行 printf 输出结果