C++循环与分支逻辑运算(第四弹)

14 阅读2分钟

书接上文

C++指针类型(第三弹)

简单聊一下学习内容

这章看起来跟其他语言一样, 我感觉的可以快速读取和略过....

循环

For循环

用于处理一些重复的工作;但注意,循环过程中不要改变“i”的变量,会让程序或者这段代码变得不可控!!! 代码:

using namespace std;
#include <iostream>
int main()
{
    for (int i = 0; i < 10; i++)
    {
        cout << i << endl;
    }
}

运行截图:

image.png

修改步长

修改步长就是修改i++的表达式。 代码:

using namespace std;
#include <iostream>
int main()
{
    for (int i = 0; i < 10; i=i+2)
    {
        cout << i << endl;
    }
}

运行截图:

image.png

递增/递减运算符和指针

这是一个很有意思的实验;我感觉不是特别推崇去写这种代码,看起来挺糟糕不好维护的,但还是要知道,就是++再前后都会影响指针的值,下面的代码需要一条一条执行,具体执行结果大家去试试。

using namespace std;
#include <iostream>
int main()
{
    // 定义一个数组
    int* pt = new int[5]{1,3,5,7,9};

    // 输出3, 证明先把先++pt的指针,然后再接触引用
    // auto a = *++pt;
    // cout <<"a " <<a << endl;
    // 输出的是2,证明先接触引用后执行的++,再对值进行++
    // auto b = ++(*pt);
    // cout <<"b " <<b << endl;
    // 输出的是1,证明是先接触引用,但是是后置++,先取出原来数组的值,然后再讲*pt的指针往后移
    // auto c = *pt++;
    // cout <<"c " <<c << endl;
    // 输出的是1,证明是先接触引用,但是是后置++,原数组的值的1也变成了2
    // auto d = (*pt)++;
    // cout <<"d " <<d << endl;
    for(int i=0;i<5;i++)
    {
        cout<<pt[i]<<endl;
    }
}

While循环

While循环是比较危险的,如果条件写错很容易死循环,不建议在业务中使用。

using namespace std;
#include <iostream>
int main()
{
    int i = 0;
    while (i++<10)
    {
        cout << i << endl;
    }
}

截图:

image.png

do while循环

do while是先执行逻辑,后跑判断是否退出 代码:

using namespace std;
#include <iostream>
int main()
{
    int i = 0;
    do
    {
        cout<<i++<<endl;
    }while (i < 10);
}

运行结果:

image.png