首页 > 其他分享 >循环语句区别(for while do...while)

循环语句区别(for while do...while)

时间:2023-03-19 09:33:38浏览次数:54  
标签:语句 do ... while 循环 指令

以下观点仅代表个人想法,不是标准

C语言中有三种循环控制语句(goto不作考虑),那么这三个语句除了语法不同外,是否还有其他区别呢?
像if语句和switch...case语句之间,除了语法不同外,switch...case对特殊的case值进行了跳转表优化,以空间换时间。
对于较为“古老”的机器,它们的内存很小,CPU运算慢,只能尽可能优化指令条数。
而我们现在的计算机运算能力很强,一两条指令的优化没有太大的影响,所以要以 代码可读性为主 ,在满足此要求情况下,选择指令条数较少的方案以优化运行速度。
对三种循环语句进行了反汇编,总结一下:do...while只进行了一次跳转,指令条数最少,性能最优。forwhile是相同的(for循环中的 004BF911 行的跳转,它只进行一次,可以忽略。若实在较真,可以认为 for 比 while 多一条指令,相对较慢)。

for 循环语句

image

while 循环语句

image

do...while 循环语句

do
{
    循环体;
}while(表达式1);

image

标签:语句,do,...,while,循环,指令
From: https://www.cnblogs.com/qinghuan190319/p/17232473.html

相关文章

  • switch...case跳转表
    0.本文结构概述switch...case语法格式C和C++的switch不同点switch...case反汇编switch...case跳转表case值间距过大不用跳转表1.switch...case语句switch(表达......
  • .net6 docker部署,以及问题解决(附Dokerfile)
    搭建仓库,发布配置docker搭建私有仓库参考上文,搭建好私有仓库,成功访问http://127.0.0.1:5000/v2/_catalog之后:在VS右键=>添加=>Docker支持=>选择Linux,即可自动......
  • CentOS docker 搭建nginx访问宿主机端口报错curl: (56) Recv failure: Connection res
    https://www.jianshu.com/p/a21e8e8e54dd 在正常安装docker-ce环境后尝试运行nginx测试docker环境是否正常,结果发现docker容器映射到宿主机的端口无法正常访问报错......
  • SudoEdit(CVE-2023-22809) 提权漏洞分析
    SudoEdit(CVE-2023-22809)提权漏洞分析TRANSLATEwithxEnglishArabicHebrewPolishBulgarianHindiPortugueseCatalanHmongDawRomanianChine......
  • dos常用指令
    常用的dos命令#盘符切换d:#查看当前目录下的所有文件dir#切换目录cd+目录地址cd/dd:cd..回到上一级目录#清理目录cls#退出终端exit#查看ipipcon......
  • docker 安装redis
    dockersearchredis   或者去dockerHub上去找版本哪个版本用的人多就用哪个 2.dockerpulredis(dockerpull<镜像名称>:<版本号>默认是拉取latest)  ......
  • docker镜像转存脚本
    #需要有外网服务器!!!#!/bin/bashecho-e"\E[0;41m私有仓库需要提前登录!!\E[0m\n"checkEv(){if[$1==0];thenecho-e"\E[0;42mok!!!!\E[0m\n"else......
  • markdown的学习,博客创建第一天
    Markdown学习标题://#+标题名字一级标题//##+标题名字二级标题以此类推字体粗体 两边加**你好斜体 两边*你好粗体加斜体两边***你好删除线两......
  • Docker安装Mysql
    使用Docker安装MySQL拉取MySQL镜像dockerpullmysql:(version)eg:dockerpullmysql:5.7创建数据目录#创建数据存放目录mkdir/home/env/db/data/mysql#创......
  • docker加入用户组
    1.创建docker用户组sudogroupadddocker2.应用用户加入docker用户组sudousermod-aGdocker${USER}3.重启docker服务sudosystemctlrestartdocker4.切......