今天刷题碰到的一个坑,就是没有注意到for循环的每次判断条件导致的**,也就是for循环的第二句**,每次循环都会执行该判断条件。

for循环的表达式一般如下:

for(表达式1;表达式2;表达式3){表达式4;
}

执行的顺序为:

  1. 第一次循环
    首先执行表达式1(一般为初始化语句,只执行一次),再执行表达式2(条件判断语句),判断表达式1是否符合表达式2的条件,如果符合,则执行表达式4,否则,停止执行,最后执行表达式3.
  2. 之后的循环:
    首先执行表达式2,如果符合,继续执行表达式4,否则停止执行,最后执行表达式
  3. 如此往复,直到不再满足表达式2的条件。

注意点是当我们修改了for循环中表达式2,条件判断语句时,这时你就要注意的你的for循环很可能就会出错。

案例

#include <iostream>
#include <queue>using namespace std;int main()
{queue<int> q;q.push(10);q.push(20);q.push(30);q.push(40);//这个循环只会打印出两个数,因为每次队列弹出值都会改变q的大小for (int i = 0; i < q.size(); i++) {cout << q.front() << ",";q.pop();  //弹出队头}             // 10,20//所以为避免每次q的大小改变,可以设定一个临时变量int temp = q.size(); 把temp放到循环中。防止非预期结果。cout << endl;//这个循环会执行四次,因为表达式2没有改变,表达式1仅进行初始化。for (int i = q.size() - 1; i >= 0; --i) {cout << q.front() << ",";q.pop();  //弹出队头}             // 10,20,30,40,
}

for循环执行顺序详解(避坑)相关推荐

  1. Oracle的for循环执行顺序详解

    oracle 测试for 循环: 1.经常会有要写for 循环的场景: for 循环名 in (循环体) loop end loop; 2.问题背景: for 循环体内的执行顺序,究竟是查询了结果集, ...

  2. unity 继承会调用start吗_Unity 继承MonoBehaviour脚本 执行顺序 详解

    先看结果 Awake ->OnEnable-> Start ->-> FixedUpdate-> Update  -> LateUpdate ->OnGUI ...

  3. 【异步系列二】Promise原理及执行顺序详解

    前言 Promise 是 javascript 中非常重要的一环,熟悉它是必须的,而且在面试中也常常会问到相关面试题. 在了解 Promise 之前,需要了解什么是异步编程,可以参考我的一篇文章:Ja ...

  4. MSELoss详解+避坑指南

    MSE均方损失函数应用: loss(xi,yi)=(xi−yi)2 loss(xi,yi)=(xi−yi)2 这里 loss, x, y 的维度是一样的,可以是向量或者矩阵,i 是下标. 很多的 lo ...

  5. java try、catch、finally及finally执行顺序详解

    1.为什么要用finally 先看一个没有finally的异常处理try-catch语句: 假设count为要使用到的资源,并且用完要求释放此资源.那么我们可以把释放资源的语句放到try-catch后 ...

  6. Python装饰器执行顺序详解

    探究多个装饰器执行顺序 装饰器是Python用于封装函数或代码的工具,网上可以搜到很多文章可以学习,我在这里要讨论的是多个装饰器执行顺序的一个迷思. 疑问 大部分涉及多个装饰器装饰的函数调用顺序时都会 ...

  7. C++三大继承构造函数的执行顺序详解

    写的挺好的,关于继承和构造函数的先后顺序问题. 转自: http://blog.csdn.net/daheiantian/archive/2011/02/18/6438782.aspx 一.单继承 核 ...

  8. javascript运行机制之执行顺序详解

    JavaScript是一种描述型脚本语言,它不同于java或C#等编译性语言,它不需要进行编译成中间语言,而是由浏览器进行动态地解析与执行.那么JavaScript是怎么来进行解析的吗?它的执行顺序又 ...

  9. python两个装饰器执行顺序_python中多个装饰器的执行顺序详解

    装饰器是程序开发中经常会用到的一个功能,也是python语言开发的基础知识,如果能够在程序中合理的使用装饰器,不仅可以提高开发效率,而且可以让写的代码看上去显的高大上^_^ 使用场景 可以用到装饰器的 ...

最新文章

  1. 阿里大鱼.net core 发送短信
  2. [trustzone]-ARM trustzone技术下常见的软件框图
  3. Linux+Jenkins自动构建服务器包
  4. php 导出csv 转义 逗号转义,在csv php中转义换行符
  5. 工作180:前端是业务需求理解
  6. Python二级笔记(13)
  7. goroutine--退出示例--context的使用
  8. 数据分析师出品:人力资源岗位年终总结可视化模板
  9. word文档怎么在左侧显示目录?
  10. 基于视频/摄像头的简单行为动作识别模型的训练步骤
  11. 苹果手机怎么备份通讯录?
  12. 计算机控制字如何使用,字由怎么用?一款软件管理1594种字体 很多设计大神都在用...
  13. 吴恩达 - 神经网络与深度学习 学习笔记
  14. ZCU102开发板的时钟系统
  15. php实现的证件照换底色功能示例【人像抠图/换背景图】
  16. 经典算法——韩信点兵问题的简单算法
  17. 线性单节锂电充电IC
  18. 递归算法和文件队列算法----实现多级文件夹的遍历,删除和复制操作
  19. java-net-php-python-20jspm健身网站管理计算机毕业设计程序
  20. 一次蚂蚁金服的面试经历

热门文章

  1. 品牌如何利用Instagram网红营销做好2023斋月推广?
  2. cmd之拷贝、删除文件夹
  3. 基于原生Javascript的Carousel设计及实现
  4. 11 令牌颁发方式 之 客户端凭证模式
  5. You think you use SharePoint but you really don't 你认为你使用了SharePoint,但是实际上不是
  6. 20天拿下华为OD笔试之【DFS/BFS】2023Q1A-开心消消乐【闭着眼睛学数理化】全网注释最详细分类最全的华为OD真题题解
  7. “百度杯” CTF比赛 十月场 Web-登录
  8. SCAU 计算智能 暴力美学(二)
  9. python datetime strftime_正确使用python的datetime的strftime方法
  10. java自动售货机代码_急求简易自动售货机(java编程)