for循环中执行顺序_顺序结构选择结构循环结构

for循环中执行顺序_顺序结构选择结构循环结构今天刷题碰到的一个坑,就是没有注意到for循环的每次判断条件导致的**,也就是for循环的第二句**,每次循环都会执行该判断条件。for循环的表达式一般如下:for(表达式1;表达式2;表达式3){表达式4;}执行的顺序为:第一次循环首先执行表达式1(一般为初始化语句,只执行一次),再执行表达式2(条件判断语句),判断表达式1是否符合表达式2的条件,如果符合,则执行表达式4,……

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

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

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

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

Jetbrains全家桶1年46,售后保障稳定

执行的顺序为:

  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,
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222956.html原文链接:https://javaforall.net

(0)
上一篇 2025年7月1日 下午10:01
下一篇 2025年7月1日 下午10:43


相关推荐

  • Jmeter安装配置详细教程

    Jmeter安装配置详细教程目录 1 Jmeter 下载 1 1 下载地址 1 2 选择对应版本 2 JDK 安装 2 1 java 环境检查 2 2 JDK 安装 2 2 1 JDK 下载 2 2 2 JDK 安装 2 2 3 JDK 环境变量配置 2 2 4 验证 java 环境 3 Jmeter 环境部署 3 1 环境配置 4 验证 jmeter5 修改语言 5 1 临时性设置 5 2 永久性生效 1 Jmeter 下载 1 1 下载地址 http jmeter apache org download jmeter cgi1 2 选择对应版本本文以 windows 版本为例

    2026年3月19日
    4
  • Anaconda 安装和pycharm新建项目关联anaconda解释器设置(涉及opencv-python3.4.1.15)

    Anaconda 安装和pycharm新建项目关联anaconda解释器设置(涉及opencv-python3.4.1.15)anaconda 安装 pycharm 新建项目 安装 opencv python3 4 1 15 和 opencv contrib python3 4 1 15

    2026年3月27日
    2
  • Linux系统如何查看版本信息

    Linux系统如何查看版本信息

    2021年10月14日
    69
  • Python写的我的世界源码+现成

    文章目录不想阅读代码者跳过正派活于话少今天第一次讲Python不要问我为什么之前不讲,就不讲~(假装自己学过python但是不讲)瞧,标题是什么,敢多说吗(我也不敢多说啊)效果图:源码(903行)from__future__importdivisionimportsysimportmathimportrandomimporttimefromcollectionsimportdequefrompygletimportimagefrompyglet.g

    2022年4月14日
    163
  • vue对于ntko的应用经验

    vue对于ntko的应用经验本来生活过的美滋滋 突然告知要用 ntko 写一个操作 word 文档的界面 看到后立马提起兴致看了下 ntko 的基本文档 安装 ntko 研究小 demo 研究完后心里立刻妈卖批了 这个 ntko 居然限制游览器与 word 版本 可把我研究苦了 chrome45 后就限制了插件入口 firfox 跟 chrome 差不多 所以只能用一些特定的进行开发 1 开发环境选择使用的是 IE11 word2016 游览器与

    2026年3月19日
    3
  • 数据仓库的分层和作用特点_数据仓库的架构以及数据分层

    数据仓库的分层和作用特点_数据仓库的架构以及数据分层在工作中,接触到关于数仓建模的工作,说是建模,其实个人感觉自己也就入个门而已,有一点儿自己的理解,最近看了本阿里的书,《大数据之路》,里面有很多数仓相关的内容,很不错,关于数仓分层的理解分享给大家。

    2025年8月10日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号