当前位置:网站首页>C语言中i++和++i在循环中的差异性
C语言中i++和++i在循环中的差异性
2022-08-02 05:06:00 【摆烂的神】
前言
今天刷题时遇到的,浅浅记录一下(可能就我不知道)。C语言中i++和++i都表示自增,不同的是++i是先增加再赋值,而i++是先赋值在增加。我觉得有和我一样的初学者,在之前一直有疑问:它们两个都差不多,那到底什么时候用i++,什么时候用++i?今天才了解到原来i++和++i在循环中的判断机制也不一样。
FOR循环
for循环中i++和++i是一样的,都是先判断再相加。
for (int i = 0; i < 5; i++)
{
cout << i << " ";
}
for (int i = 0; i < 5; ++i)
{
cout << i << " ";
}
输出结果是一样的。
while循环
在while循环中,i++和++i就不一样了:i++是先判断再增加再进入循环体:
int i = -5;
while (i++ < 0)
{
cout << i << " ";
}
如上代码中,先判断i == -5满足小于零,再自增 i = i + 1,最后进循环;
而++i则是先增加再判断再进入循环体:
i = -5;
while (++i < 0)
{
cout << i << " ";
}
如上代码中,先自增 i = i + 1,再判断 i == -4 满足小于零,最后进循环;
测试结果如下:
do-while循环
在do-while循环中和while循环中的i++和++i是一样的,只不过do-while先执行了一次循环体:
cout << "do-while循环i++:";
i = -5;
do
{
cout << i << " ";
} while (i++ < 0);
cout << "do-while循环++i:";
i = -5;
do
{
cout << i << " ";
} while (++i < 0);
边栏推荐
猜你喜欢
2021年软件测试面试题大全
Review: image saturation calculation formula and image signal-to-noise (PSNR) ratio calculation formula
简道云-灵活易用的应用搭建平台
JUC(二)原子类:CAS、乐观锁、Unsafe和原子类
MySQL 8.0.29 decompressed version installation tutorial (valid for personal testing)
navicat新建数据库
navicat连接MySQL报错:1045 - Access denied for user ‘root‘@‘localhost‘ (using password YES)
大屏UI设计-看这一篇就够了
MySQL 8.0.29 解压版安装教程(亲测有效)
How much does a test environment cost? Start with cost and efficiency
随机推荐
mysql实现按照自定义(指定顺序)排序
golang generics
The company does not pay attention to software testing, and the new Ali P8 has written a test case writing specification for us
Browser onload event
ERROR 1045 (28000) Access denied for user ‘root‘@‘localhost‘解决方法
Mysql common commands
Google 安装印象笔记剪藏插件
go项目的打包部署
MySQL 5.7升级到8.0详细过程
mysql安装教程【安装版】
本周大新闻|苹果MR已进行Pre-EVT测试,Quest 2涨价100美元
软件测试的需求人才越来越多,为什么大家还是不太愿意走软件测试的道路?
JUC(一)- JUC学习概览 - 对JUC有一个整体的认识
Use the browser's local storage to realize the function of remembering the user name
MySQL 8.0.29 设置和修改默认密码
165.比较版本号
navicat连接MySQL报错:1045 - Access denied for user ‘root‘@‘localhost‘ (using password YES)
AMQP协议详解
Mysql实现乐观锁
coredns介绍