• 《代码大全》阅读笔记-16-控制循环


    核对表(循环)

    循环的选择和创建

    • 在核实的情况下用while循环取代for循环了吗?
    • 循环是由内到外创建的吗?

    进行入循环

    • 是从循环头部进入的循环吗?
    • 初始化代码是否直接位于循环前面吗?
    • 循环是无限循环或者事件循环吗?它的结构是否清晰?
    • 避免使用像for i=1 通9999这样的代码?
    • 如果这是一个C+_+、C或者Java中的for循环,那么循环头留给循环控制代码了吗?

    循环的内部

    • 循环是否用了"()"或其等价物来括上循环体,以防止因修改不当而出错吗?
    • 循环体内有内容吗?他是非空的吗?
    • 把内务处理集中地放在循环开始或者循环结束处了吗?
    • 循环像定义良好的子程序那样只执行了一件操作吗?
    • 循环短得足以一目了然?
    • 循环的潜逃层次不多于3层吗?
    • 把长循环的内容提取成单独的子程序吗?
    • 如果循环很长,那么它非常清晰吗?

    循环下标

    • 如果这是一个for循环,那么其中的代码有没有随意修改循环下标值?
    • 是否把重要的循环下标值保存在另外的变量里,而不是在循环体外使用该循环下标?
    • 循环下标是序数类型(整数)或者枚举类型——而不是浮点类型吗?
    • 循环下标的名字有意义吗?
    • 循环避免了下标串话问题吗?

    退出循环

    • 循环在所有可能的条件下都能终止吗?
    • 如果建立了某种安全计数器标准,循环使用安全计数器了吗?
    • 循环的退出条件清晰吗?
    • 如果使用了break或者continue,那么他们用对了吗?

    要点

    • 循环很复杂,保持循环简单讲有助于别人阅读你的代码
    • 保持循环简单的技巧包括:避免使用怪异的循环、减少嵌套层次、让入口和出口一目了然,把内务操作代码放在一起
    • 循环下标很容易被滥用。因此命名要准确,并且要把它们各自仅用于一个用途
    • 仔细地考虑循环,确认他在每一种情况下都能运行正常,并且在所有可能的条件下都能退出。
  • 相关阅读:
    同步类容器和并发类容器
    T4模板生成自定义的实体类
    C# UrlEncode 编码
    PLSQL快速生成增删改查语句
    Oracle 检查星期只能是1-7的数字不能重复
    PLSQL 插入数据无响应
    C# DataTable 排序
    C# 获取程序集信息
    C# 调用WinRAR解压缩文件
    DataTable 获取一列最大值并修改
  • 原文地址:https://www.cnblogs.com/taceywong/p/8719548.html
Copyright © 2020-2023  润新知