怎样选择合适的循环体(do&while、while和for)

2023-11-05

我们都知道,循环体可以有五种,while、do while、for、goto和递归。
虽然理论上任何循环都可以用其他四种转换,但是因为goto在安全性以及在功能上能够被取代的特点,所以一般不会用到;而递归的特殊性和编写的困难性使递归的登场次数也屈指可数。


那么,当我们需要用到循环的时候,在剩下的循环体中该如何进行选择呢?我们将讨论这几种循环体根本上的差异。
首先我们看下面这个例子:

用for循环实现简单的文件遍历,然后复制字符

char *newpath = "D:\\test\\10_new.txt";

void main()
{
    FILE *pfr = fopen(path,"r");
    FILE *pfw = fopen(newpath, "w");

    for (int ch = fgetc(pfr); !feof(pfr); ch = fgetc(pfr))
    {
        fputc(ch, pfw);      // for循环
    }<
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

怎样选择合适的循环体(do&while、while和for) 的相关文章

  • Xpath和CSS选择器的使用详解

    Xpath与CSS选择器在爬虫中非常常见 下列我将描述一下它们的使用详情 安装Xpath和CSS选择器 Windows平台 pip install lxml Ubuntu平台 sudo apt get install python3 lxm

随机推荐

  • js的作用域和vue的作用域

    js有两种作用域 全局作用域和局部作用域 1 全局作用域 如果一个变量在所有函数外声明 那么就定义了一个全局作用域 2 局部作用域 有两种 函数作用域和块级作用域 函数作用域顾名思义就是在函数内定义的变量 而块级作用域则是 内let声明的变
  • 【Linux】几种典型的IO模型

    几种典型的IO模型 常见IO场景 输入和输出 读写文件 read write fread fwrite 网络接收与发送 send recv sendto recvfrom 上述两种场景都有一个共同点 就是最终都会和操作系统打交道 IO过程
  • python高级特性总结之切片 迭代 生成器 迭代器

    切片 gt gt gt L list range 100 gt gt gt L 0 1 2 3 99 gt gt gt L 10 0 1 2 3 4 5 6 7 8 9 gt gt gt L 10 90 91 92 93 94 95 96
  • PlantCV 农业自动化中的机器视觉库

    PlantCV 农业自动化中的机器视觉库 2020年下半年 各大互联网巨头纷纷进军社区买菜市场 我身边的朋友同事很多都开始通过新的电商生鲜渠道购买蔬菜 当时我就觉得 大资本即将涌入我们的第一产业 农业 果不其然 2020年12月31号 正值
  • Dell PowerEdge R740xd解析:服务器只看参数那就错了

    昨天写了 Dell PowerEdge R940解析 四路顶配服务器维护平民化 今天继续 对于R7x0这样的2U主力服务器机型 说实话我觉得不是特别好写 一方面不如四路有特点 另外又是互联网等行业消耗最多的 可以说乃服务器厂商必争之地 正如
  • Ubuntu下安装Chrome浏览器

    一 下载包 通过直接下载安装Google Chrome浏览器deb包 打开Ubuntu终端 以下为32位版本 使用下面的命令 wget https dl google com linux direct google chrome stabl
  • 模拟相机视频输入方案-----模拟转MIPI /DVP方案

    技术交流 请加微信video D 概述 由于模拟相机在监控领域的优势 以及模拟相机成本优势 目前模拟相机方案需求还是很多的 具体模拟解码芯片介绍 目前接触的有以下几种 1 Nextchip系列 韩国NEXTCHIP系列 主攻ISP AHD
  • 开发微信公众号支付代码

    一 url传入当前页面url地址或者微信公众平台配置的域名根目录 使用window location href方法获取 二 下面代码请结合微信公众号开发文档 微信公众号开发文档 function test url uni request u
  • 如何在Linux下安装vim编辑器

    目前的Ubuntu版本都安装了vi编辑器 vim编辑器可以看做vi编辑器的升级版 可以识别特殊字符 显示不同颜色 目录 第一步 第二步 第三步 第四步 第一步 在terminal里面输入vi命令后按下tab键可以看到当前vi可以执行的命令
  • 算法的时间及空间复杂度

    简介 java系列技术分享 持续更新中 初衷 一起学习 一起进步 坚持不懈 如果文章内容有误与您的想法不一致 欢迎大家在评论区指正 希望这篇文章对你有所帮助 欢迎点赞 收藏 留言 更多文章请点击 文章目录 一 什么是算法 二 算法初体验 案
  • C++ String替换&分割指定字符串

    C String替换 分割指定字符串 1 C String替换指定字符串 C 的string对象提供了replace方法来实现字符串的替换 本文实现对于将字符串中某个字符串全部替换的功能 string replace all string
  • MOOC清华《程序设计基础》第5章:求n的阶乘(用递推法做)

    使用递推思想 求解正整数的阶乘 本算法的数学模型为 n n 1 n include
  • CCF CSP 202206-3角色授权【70分】

    include
  • ts文件服务器端加密,加密ts文件解密

    EXTM3U EXT X VERSION 3 EXT X MEDIA SEQUENCE 0 EXT X ALLOW CACHE YES EXT X TARGETDURATION 13 EXT X KEY METHOD AES 128 URI
  • Linux动态库(.so)搜索路径

    Linux动态库 so 搜索路径 众所周知 Linux动态库的默认搜索路径是 lib和 usr lib 动态库被创建后 一般都复制到这两个目录中 当程序执行时需要某动态库 并且该 动 态库还未加载到内存中 则系统会自动到这两个默认搜索路径中
  • 网站无法访问的一些问题与解决

    最近阿里云的服务器上跑的博客出现了一些问题 上阿里云官网看了一下 原来是忘记续费了 也没给我发邮件 悄摸的给我停了 续费之后 问题依旧 可以使用xshell5进行远程连接 但是在浏览器上不能进行访问 会显示这个 很尴尬 在本地ping主机是
  • cuda异步并行执行

    异步函数使得主机端与设备端并行执行 控制在设备还没有完成前就被返回给主机线程 包括 kernel启动 以Async为后缀的内存拷贝函数 device到device内存拷贝函数 存储器初始化函数 比如cudaMemset cudaMemset
  • simulink中积分环节、惯性环节、比例环节

    第一步 第二步 第三步 注 适当修改参数即可变成所需环节 如下所示 修改为 或者为 抑或
  • hadoop搭建好,启动服务后,无法从web界面访问50070

    在hadoop完全分布式搭建好以后 从主节点启动正常 使用jps查看启动的进程 正常 在几个从节点上使用jps查看 显示正常 但从web上输入下面网址 http 主节点IP 50070 无法正常连接显示 试了若干网上查到的方法 是通过下面方
  • 怎样选择合适的循环体(do&while、while和for)

    我们都知道 循环体可以有五种 while do while for goto和递归 虽然理论上任何循环都可以用其他四种转换 但是因为goto在安全性以及在功能上能够被取代的特点 所以一般不会用到 而递归的特殊性和编写的困难性使递归的登场次数