### 4.2 循环结构
#### 4.2.1 while循环语句
**作用:**满足循环条件,执行循环语句
**语法:**` while(循环条件){ 循环语句 }`
**解释:**==只要循环条件的结果为真,就执行循环语句==
![img](assets/clip_image002-1541668640382.png)
**示例:**
```C++
int main() {
int num = 0;
while (num < 10)
{
cout << "num = " << num << endl;
num++;
}
system("pause");
return 0;
}
```
> 注意:在执行循环语句时候,程序必须提供跳出循环的出口,否则出现死循环
**while循环练习案例:**==猜数字==
**案例描述:**系统随机生成一个1到100之间的数字,玩家进行猜测,如果猜错,提示玩家数字过大或过小,如果猜对恭喜玩家胜利,并且退出游戏。
![猜数字](assets/猜数字.jpg)
#### 4.2.2 do...while循环语句
**作用:** 满足循环条件,执行循环语句
**语法:** `do{ 循环语句 } while(循环条件);`
**注意:**与while的区别在于==do...while会先执行一次循环语句==,再判断循环条件
![img](assets/clip_image002-1541671163478.png)
**示例:**
```C++
int main() {
int num = 0;
do
{
cout << num << endl;
num++;
} while (num < 10);
system("pause");
return 0;
}
```
> 总结:与while循环区别在于,do...while先执行一次循环语句,再判断循环条件
**练习案例:水仙花数**
**案例描述:**水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身
例如:1^3 + 5^3+ 3^3 = 153
请利用do...while语句,求出所有3位数中的水仙花数
#### 4.2.3 for循环语句
**作用:** 满足循环条件,执行循环语句
**语法:**` for(起始表达式;条件表达式;末尾循环体) { 循环语句; }`
**示例:**
```C++
int main() {
for (int i = 0; i < 10; i++)
{
cout << i << endl;
}
system("pause");
return 0;
}
```
**详解:**
![1541673704101](assets/1541673704101.png)
> 注意:for循环中的表达式,要用分号进行分隔
> 总结:while , do...while, for都是开发中常用的循环语句,for循环结构比较清晰,比较常用
**练习案例:敲桌子**
案例描述:从1开始数到数字100, 如果数字个位含有7,或者数字十位含有7,或者该数字是7的倍数,我们打印敲桌子,其余数字直接打印输出。
![timg](assets/timg.gif)
#### 4.2.4 嵌套循环
**作用:** 在循环体中再嵌套一层循环,解决一些实际问题
例如我们想在屏幕中打印如下图片,就需要利用嵌套循环
![1541676003486](assets/1541676003486.png)
**示例:**
```C++
int main() {
//外层循环执行1次,内层循环执行1轮
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
cout << "*" << " ";
}
cout << endl;
}
system("pause");
return 0;
}
```
**练习案例:**乘法口诀表
案例描述:利用嵌套循环,实现九九乘法表
![0006018857256120_b](assets/0006018857256120_b.jpg)