• 一般控制问题


    一般控制问题

    布尔表达式

    布尔表达式说明
    用true和false做布尔判断而非0或1
    简化复杂的表达式拆分复杂的判断并引入新的布尔变量
    把复杂的表达式做成布尔函数
    用决策表代替复杂的条件
    编写肯定形式的布尔表达式狄摩根定理简化否定的布尔判断
    用括号使布尔表达式更清晰计数使括号对称
    理解布尔表达式如何求值短路、惰性
    按照数轴的顺序编写数值表达式MIN_ELEMENTS <= i and i <= MAX_ELEMENTS
    i < MIN_ELEMENTS or MAX_ELEMENTS > i
    与0比较的原则隐式的比较逻辑:while( !done )
    把数和 0比较:while( balance != 0 )
    在C中显示的比较字符和零终止符:while( *charPtr != ‘\0’ )
    把指针和NULL比较:while( bufferPtr != NULL )
    布尔表达式常见的问题在C家族语言中,应该把常量放在比较的左端

    驯服危险的深层嵌套

    驯服危险的深层嵌套说明
    重复检测条件中的某一部分来简化嵌套的 if 语句使用一个更复杂的判断,作为减少嵌套层次的代价
    用Break块来简化嵌套 ifdo{
    if(intputStatus != OK){
    break;
    }
    if(!done){
    break;
    }
    }while(False)
    把嵌套 if 转换成一组 if - then - else 语句
    把嵌套 if 转换成 case 语句
    把深层嵌套的代码抽取出出来放进单独的子程序
    使用一种更面向对象的方法
    用状态变量重写代码
    用防卫子句退出子程序使代码主要路径更为清晰
    使用异常
    重新设计深层嵌套的代码

    结构化编程

    结构化编程说明
    结构化编程应用程序应该只采用单入单出的控制结构,单入单出的控制结构指的就是一个代码块,
    它只能从一个位置开始,并且只能结束语与一个位置
    结构化编程的3个组成部分顺序、选择、迭代(循环)

    复杂度的重要性

    降低复杂度的一般原则说明
    如何度量复杂度Tom McCabe决策点
    Tom McCabe决策点从1开始,一直往下通过程序
    一旦遇到以下关键字,或者同类的词就加1:
    if、while、repeat、for、and、or
    给 case 语句中的每一种情况都加 1
    if ( ( ( status = Success) and done ) or
    ( not done and ( numLines >= maxLines ) ) ) then
    从1开始,if得2,and得3,or得4,and得5
    处理复杂度的度量结果0-5:子程序可能还不错
    6-10:得想办法简化子程序
    10+:把子程序的某一部分拆分成另一个子程序并调用它
  • 相关阅读:
    WZOI-221判断互质
    【SA8295P 源码分析】105 - QNX MISC分区读写、切换A/B启动槽、读取开机次数命令 swdl_utils 介绍 及 祼分区读写 代码实现
    利用javascript编写用户输入两个数,计算两个数字之间所以数字的和
    冒泡算法,leetcode第一题
    Vue 使用 v-bind 动态绑定 CSS 样式
    QAnything安装纪要
    算法通关18关 | 回溯模板如何解决复原IP问题
    企业应用架构研究系列二十七:Vue3.0 之环境的搭建与Vue Antd Admin探索
    利用MATLAB数值求解边值问题——Berman问题
    C. Zero Path
  • 原文地址:https://blog.csdn.net/u010650845/article/details/126779616