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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 数据库系统课程设计(高校成绩管理数据库系统的设计与实现)

    数据库系统课程设计(高校成绩管理数据库系统的设计与实现)数据库课程设计

  • win2008安装mysql8.0「建议收藏」

    win2008安装mysql8.0「建议收藏」mysql升级到8.0还是有一些变动,先说一下变动的地方有有些:不能直接修改root的权限了,需要新建用户然后再设置用户的权限;更改了密码的加密方式,mysql8之前是使用的mysql_native_password规则,mysql8是使用的caching_sha2_password规则安装mysql8时win2008需要安装MicrosoftVisualC++2015补丁需要自…

  • eclipse配置android_零基础电脑初学者入门教程

    eclipse配置android_零基础电脑初学者入门教程Eclipse Android开发入门手册 资源下载http://tools.android-studio.orgjdk,AndroidSDK,开发工具eclipse、Androidstudio、idea  配置java环境搜索jdk安装对应的包,参照http://www.runoob.com/java/java-environment-setup.html  配置环境 安装eclipse和A…

  • ubuntu查看cuda和cudnn版本_cuda9对应的显卡版本

    ubuntu查看cuda和cudnn版本_cuda9对应的显卡版本1、查看cuda版本原来的老办法是这样的,cat/usr/local/cuda/version.txt在我的jetsonTX2上的和PC上是一样的,~$cat/usr/local/cuda/version.txtCUDAVersion10.2.3002、查看cudnn版本在PC上还是原来的老办法,cat/usr/local/cuda/include/cudnn.h|grepCUDNN_MAJOR-A2在我的JetsonTX2上不同,发现在cudn

  • 电信光猫tewa-708e超级密码_天翼网关hg6201t超级密码

    电信光猫tewa-708e超级密码_天翼网关hg6201t超级密码文章转载:玩转盒子前些年各地运营商响应国家政策,光进铜退小区宽带由网线入户改成光缆入户,这样必须用光猫把光信号转换成电信号。我用的是中国电信的宽带,2017年我们小区也进行了网络改造,网线入户变成了光缆入户。电信给配的光猫型号是TEWA-600NGM,我这个光猫只有一个千兆网口,一个百兆网口和一个USB口,没有电话插口。这个光猫自带无线WiFi,WiFi名称是ChinaNet-XXXX(不同…

  • 【开发工具】【smartctl】硬盘检测工具(smartctl)的使用

    【开发工具】【smartctl】硬盘检测工具(smartctl)的使用概述随着硬盘容量、速度的快速发展,硬盘的可靠性问题越来越重要,今天的单块硬盘存储容量可轻松达到1TB,硬盘损坏带来的影响非常巨大。不同的文件系统(xfs,reiserfs,ext3)都有自己的检测和修复工具。检测之前可以先使用dmesg命令查看有没有硬件I/O故障的日志,如果有,先用fsck看看是不是文件系统有问题,如果不是则可以使用下面介绍硬盘检测和优化方法来修复它。grep“error”/va/log/messages*;SMART是一种磁盘自我分析检测技术,早在90年代末就基本得到了

发表回复

您的电子邮箱地址不会被公开。

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