跳至正文
View Categories

1 min read

主要内容 #

1. ++ 和 — 符号 #

// demo code from Dashima
#include < iostream >
using namespace std;
int main()
{
    int i(0);
    while(true)
    {
        cout << i << endl;
        i = i + 1;
        if(i <= 20)
            break;
    }
    return 0;                     
}

这个循环可以执行 20 次。
其中,可以这样改写:

// demo code from Dashima
#include < iostream >
using namespace std;
int main()
{
    int i(0);
    while(true)
    {
        cout << i << endl;
        i++;             // 新语法,表示 i = i + 1;
        if(i <= 20)
            break;
    }
    return 0;                     
}

i++ 这种写法,可以提高书写的效率,是一种很常用的写法。

除此以外,还可以这样改写:

// demo code from Dashima
#include < iostream >
using namespace std;
int main()
{
    int i(20);
    while(i--) // 新语法,表示 i = i - 1;
    {
        cout << i << endl;
    }
    return 0;                     
}

小结:

i++; // 等价于 i = i + 1;
i--; // 等价于 i = i - 1;

2. 循环嵌套 #

while 循环的嵌套比较容易,请看示例程序:

// demo code from Dashima
#include < iostream >
using namespace std;
int main()
{
    int i(0), s(0);
    while(i < 100)
    {
        int j(0);
        while(j < 100) // 在 while 内,嵌套一个 while 
        {
            j++;
            s++;
        }
        i++;
    }

    cout << "i = " << i << endl; // 请问 i 的值是多少?
    cout << "s = " << s << endl; // 请问 s 的值是多少?

    return 0;                     
}

答案:

i=100;
s=10000;

循环的嵌套,也是一种很典型的程序结构。
举一个很典型的应用场景:写作文。

作文是从左往右,一行一行写的,所以可以描述为下面的过程:

1. 写第一行
        写第 1 个格子;
        写第 2 个格子;
        写第 3 个格子;
        写第 4 个格子;
        ...
        写第 9 个格子;// 假设一行是9个格子
2. 写第二行
        写第 1 个格子;
        写第 2 个格子;
        写第 3 个格子;
        写第 4 个格子;
        ...
        写第 9 个格子;// 假设一行是9个格子
3. 写第三行
        写第 1 个格子;
        写第 2 个格子;
        写第 3 个格子;
        写第 4 个格子;
        ...
        写第 9 个格子;// 假设一行是9个格子
...

用 while 的嵌套可以这样描述:

int j(0);
while(j < 100)
{
    j++;          // 移动到下一行

    int i(0);
    while(i < 10) 
    {
        i++;      // 移动到下一个格子
        写一个字;
    }
}

习题 #

课后练习