# 【伴随编程】使用while循环
```
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int main(){
int i = 1,sum = 0;
//请在下面输入代码
cout << sum << endl;
return 0;
}
```
刚才我们已经介绍了两种基本的循环结构,现在我们就来实际演练一下这两种循环结构的使用方法吧!现在,我们来执行一个累加算法,求出自然数 111 到 101010 的和——通过循环语句来实现。
正所谓“万事开头难”,所以这一次首先由小蒜来教你怎么实现——我们先试着使用一下`while`循环结构。首先我要有一个用于记录和的变量`sum`,以及一个记录已循环次数的变量i。
累加算法的流程是让 `i` 从 111 增加到 101010 ,并且每增加一次都累加到`sum`变量上,所以我们可以知道:循环体的结构就是每一次都把 `i`的值累加到 `sum` 上,然后让`i`加1,而循环继续执行的条件自然就是`i`不超过要累加的最大数 101010 了。
这里,我们先在已有的程序架构后面写上`while`循环的基本框架:
~~~
while (i<=10) {
}
~~~
很好,现在让我们来添加循环体代码:我们要先把`i`的值累加到`sum`上,然后再让`i`加 1 ——这样当循环执行了十次之后,`i`的值会变成 11,然后循环条件不再满足,循环就会自动终止。
现在请把这两个语句写到循环体中,注意别写错位置了哦!
非常棒!现在我们来运行一下这个程序吧!请点击“运行”,看看输出的结果跟我们的预期是不是一样(根据算术级数求和公式,1 加到 10 的和为 55)。
```
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int main(){
int i = 1,sum = 0;
//请在下面输入代码
while(i<=10){
sum=sum+i;
i=i+1;
}
cout << sum << endl;
return 0;
}
```
接下来让我们试一试`do...while`循环的用法——请大家回忆一下`do...while`循环与`while`循环的区别,你会发现这里我们不需要改动已经写好的循环体,,只要把`while`的部分改成`do`,然后在循环体的右花括号外写下`while`和条件表达式就可以了,试着改一下吧!
```
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int main(){
int i = 1,sum = 0;
//请在下面输入代码
do{
sum=sum+i;
i=i+1;
}while(i<=10);
cout << sum << endl;
return 0;
}
```
很好,接下来让我们运行一下程序,看一下跟之前算出的结果是否一样吧!
这个时候你一定会问——这两者既然算出的结果都一样,那它们又有什么区别呢?接下来让我们来体会一下这两者的差别吧!
首先让我们把i的值改为 11,然后再运行一次`do...while`循环,看看程序会输出什么样的结果。现在请把i的值改为 11
现在请大家运行一下这段代码。
可以看到,`sum`的值输出为 11——也就是说,`i`的值 111111 已经被累加进了`sum`里,说明这个循环执行了一次。那么,`while`循环又有什么区别呢?大家快来试一试吧!现在请把`do...while`循环重新改为`while`循环。
```
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int main(){
int i = 11,sum = 0;
//请在下面输入代码
while(i<=10){
sum=sum+i;
i=i+1;
}
cout << sum << endl;
return 0;
}
```
我们已经介绍过,跟`do...while`循环不同,`while`循环在开始执行循环体之前会首先检查表达式条件是否满足——现在i的初始值是 11 ,显然不在`i<=10`的范围内,所以这个循环一次都不会执行,输出的`sum`结果自然就是没有经过累加的初始值 0 。
现在,快来运行一下这个程序,看看结果吧!你可以多试几个值,进一步了解两者之间的差别。
- 教材介绍
- 《编程初学入门常识》
- 什么是程序语言
- 【知识精讲】编程与编程语言
- 【选择测试】编程语言分类
- 【知识精讲】高级语言分类
- 【选择测试】编译与解释
- 【选择测试】程序员笑话-Java
- 熟悉键盘上用于编程的键位
- 【知识精讲】认识你的键盘
- 【知识精讲】中文和英文字符
- 【匹配测试】识别中英文符号
- 【选择测试】中英文符号的影响
- 【伴随编程】不要使用中文引号
- 【伴随编程】不要使用中文分号
- 【伴随编程】正确地输入符号
- 【选择测试】找出程序中的错误
- 初始工程师思维
- 【知识精讲】二进制思想
- 【选择测试】程序员笑话-凑整
- 【知识精讲】闭合的逻辑
- 【选择测试】程序员笑话-条件
- 程序员职业与生活
- 【知识精讲】程序员的发展方向
- 【知识精讲】程序员的装备
- 【知识精讲】程序员的健康
- 【选择测试】做一名健康的程序员
- 《C++程序设计》
- 前言
- 【知识精讲】编程与计算机科学
- 【知识精讲】编程与软件工程
- 【知识精讲】如何学习编程
- 你好C++
- 【知识精讲】你好,C++
- 【知识精讲】C++程序是如何开发的
- 【知识精讲】成为一名Power User
- 【伴随编程】让我们一起说你好
- 【知识精讲】你的第一个C++语言程序
- 【伴随命令】编译、运行你的程序
- 【伴随编程】将变量流式输出
- 【选择测试】变量的作用域
- 【知识精讲】变量与数据类型
- 【匹配测试】C++语言的入门概念
- 【知识精讲】在程序中学会换行
- 【选择测试】正确地换行
- 简单数学运算
- 【知识精讲】重新认识基本运算
- 【选择测试】运算符的理解
- 【伴随编程】做一下简单的运算
- 【伴随编程】a 的 n 次方
- 【知识精讲】数学函数
- 【伴随编程】让C++语言变成计算器
- 【伴随编程】计算球的体积
- 【匹配测试】数学世界知多少
- 【知识精讲】在程序中添加注释
- 【选择测试】正确地写注释
- 从伴随输入到变量地址
- 【伴随编程】 一个数字复读机器
- 【选择测试】理解标准输入输出
- 【伴随编程】一个加法计算器
- 【程序设计】A+B+C问题
- 【伴随编程】简单的I/O格式控制
- 【知识精讲】地址与取地址符
- 【伴随编程】看看我们的地址
- 习题一:面积与周长
- 【程序设计】矩形面积与周长
- 【程序设计】三角形面积与周长
- 【程序设计】圆形面积与周长
- 程序中的是与非
- 【知识精讲】是非的表示与关系运算
- 【伴随编程】验一验关系运算式
- 【选择测试】关系运算式求值
- 【知识精讲】如果的意义
- 【伴随编程】分段函数求值
- 【知识精讲】如果之后的如果
- 【伴随编程】五则运算器
- 【选择测试】分支的嵌套
- 【伴随编程】问号表达式
- 【知识精讲】是非之间的逻辑组合
- 【伴随编程】判断闰年
- 【程序设计】日期合法性
- 【知识精讲】多路顺序结构
- 【知识精讲】在程序中学会缩进
- 【选择测试】正确的缩进
- C++程序中的苦力
- 【知识精讲】使用循环结构
- 【选择测试】对比两种循环
- 【伴随编程】使用while循环
- 【填空测试】理解循环结构
- 【知识精讲】自减和自增运算符
- 【伴随编程】使用自增运算符
- 【知识精讲】for循环
- 【选择测试】for循环的使用
- 【程序设计】一大波好玩儿的程序
- 《代码能力快速提升》
- 《基础数据结构》
- 《搜索入门》
- 《动态规划基础》
- 《数论和基础数学》
- 《图和数基础》