### 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)