• C++语法基础(4)——循环结构程序设计



    青舟智学×datawhale,仅为自己学习笔记,推荐大家参加datawhale组队学习注册青舟智学进行学习,侵权的话就删哈

    循环结构程序设计

    for语句

    for循环

    for (循环变量赋初始值;循环条件;更新循环变量) {
        循环体
    }
    
    • 1
    • 2
    • 3
    • 使用for循环时,【循环变量赋初始值】,【循环条件】,【更新循环变量】这三个表达式都可以省略,变为for ( ; ; ) ,这表示不用给循环变量赋初始值,也不用在每次执行后更新循环变量,同时循环的条件始终为真,也就是说每次都会选择进入循环体。
    • 如果循环体只有一句话,可以不用大括号括起来
    // 输入一个整型变量表示存款总数量
    int savings = 0;
    
    // 用循环变量 i 表示现在的天数
    // 最开始为1
    // 每次循环后都加1天
    // 不满足小于等于100天时就跳出循环
    for (int i=1; i<=100; i++) {
        // 更新存款总数
        savings = savings + i;
        // 输出存款总数
        cout << i << ":总数" << savings << endl;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    循环控制语句 break

    • break通常放在循环体中,当执行到这句语句时,跳出整个循环,也就是说整个循环立即终止

    循环控制语句 continue

    • continue通常也是放在循环体中,当执行到这句语句时,跳过当前循环体,强迫进入下一次循环

    while语句

    一个循环结构,但是这时候我们不知道总共要循环几次,也不关心目前循环到了第几次,所以循环变量不关键,我们就可以用到 while语句来解决这个问题。
    在这里插入图片描述

    while 循环

    • while循环只关注循环终止的条件循环体的内容本身。
    while (循环成立条件) {
        循环体
    }
    
    • 1
    • 2
    • 3
    // 声明生成的随机数字和猜的数字这两个变量
    int num, guess;
    
    // 提供随机种子
    srand((unsigned)time(NULL));
    // 随机生成一个1-100的数字
    num = rand() % 100 + 1;
    
    // 输入猜测的数字
    cin >> guess;
    
    // 如果猜的数字和生成的数字不相同就进入循环
    while (guess != num) {
        // 输出猜大了还是猜小了
        if (guess > num)
            cout << "猜大了" << endl;
        else if (guess < num)
            cout << "猜小了" << endl;
        
        // 重新输入猜测的数字
        cin >> guess;
    }
    
    // 当猜的数字和生成的数字相同时,跳出循环后,输出“猜对了”
    cout << "猜对了" << endl;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    do while 循环

    do {
        循环体
    } while (循环成立条件);
    
    • 1
    • 2
    • 3
    • do while 执行逻辑和while类似。唯一的区别在于:因为条件表达式出现在循环的尾部,所以至少会执行一次循环体,执行完成后,再判断是否进入下一次循环。
    // 声明生成的随机数字和猜的数字这两个变量
    int num, guess;
    
    // 提供随机种子
    srand((unsigned)time(NULL));
    // 随机生成一个1-100的数字
    num = rand() % 100 + 1;
    
    do {
        // 输入猜测的数字
        cin >> guess;
        
        // 输出猜大了还是猜小了
        if (guess > num)
            cout << "猜大了" << endl;
        else if (guess < num)
            cout << "猜小了" << endl;
    } while (guess != num);
    
    // 当猜的数字和生成的数字相同时,跳出循环后,输出“猜对了”
    cout << "猜对了" << endl;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    多重循环

    循环嵌套适用于循环的大操作里有重复的小操作的情景。
    假设我们要打印一个九九乘法表:
    在这里插入图片描述
    如果我们用for循环内部嵌套for循环的方式来写,代码是这样实现的:

    // 1-9,每个数字打印一行
    for (int i = 1; i <= 9; i++) {
        // 在第i行中,对于每个小于i的数字,都打印一个等式和tab分隔
        for (int j = 1; j <= i ; j++) {
            cout << j << "*" << i << "=" << j*i << "\t";
        }
        // 第i行最后打印换行符
        cout << endl;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    如果我们用for循环内部嵌套while循环的方式来写,代码就是这样的:

    // 1-9,每个数字打印一行
    for (int i = 1; i <= 9; i++) {
        // 在第i行中,对于每个小于i的数字,都打印一个等式和tab分隔
        int j = 1;
        while (j <= i) {
            cout << j << "*" << i << "=" << j*i << "\t";
            j++;
        }
        // 第i行最后打印换行符
        cout << endl;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    java多线程基础(上)
    Linux服务器部署SpringBoot项目教程
    Visual Studio 2022 版本 17.4 预览版 3 中对c++编译时优化的内容你都知道吗
    How to install the console system of i-search rpa on Centos 7
    Halcon Solution Guide I basics(2): Image Acquisition(图像加载)
    Linux中的防火墙(粗糙版)
    销售词汇Sell In、Sell Through、Sell Out辨析
    机器人强化学习——第一人称 VS 第三人称
    OpenAI再次与Altman谈判;ChatGPT Voice正式上线
    深入理解线段树
  • 原文地址:https://blog.csdn.net/qq_44941689/article/details/125557886