表驱动法

简书 賈小強
转载请注明原创出处,谢谢!

表驱动法是一种编程模式(scheme)--从表里面查找信息而不使用逻辑语句(if和case)。事实上,凡是能通过逻辑语句来获得的事物,都可以通过查表来获得。对简单的情况而言,使用逻辑语句更为容易和直白。但随着逻辑链的越来越复杂,查表法也就愈发显得更具吸引力。

怎么存到表里:

1)dayPerMonth=[31,28,31,30,31,31,30,31,30,31]表可以用于存放对应月份的天数
2)charTypeTable=[...'标点符号类型','标点符号类型',...,'字符类型','字符类型'...'数字类型','数字类型'...]
3)rateTable=性别,婚姻,年龄,抽烟等因为的一个多维数组
4)在表中存的是一系列兄弟类对象,objectTable=[obj1,obj2,obj3...]
5)对一列数据建立索引
6)两个平行的数组,如rangelimit={50.0, 65.0, 75.0, 90.0, 100}, grade={"F", "D", "C", "B", "A"}

怎么从表中查询:

直接访问:(一个或多个值映射到另一个值)
1)day=dayPerMonth[1]
2)charType=charTypeTable['a']
3)rate=rateTable[性别][婚姻][年龄][抽烟]

  1. objectTable[enum].method()

索引访问(提升空间,时间效率)
5)先用一个基本类型的数据从一张索引表中查出一个键,然后再用这个键查出感兴趣的主数据

阶梯访问 (一个范围内的某个值映射到另一个值)
6)写一个循环,按照区间的上限检查分数,当第一次超过某个区间的上限时,就知道对应的等级了

Happy learning !!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第18章 表驱动法 18.1 表驱动法使用总则(General considerations in using t...
    天天one阅读 408评论 1 0
  • 本文示例代码采用的是c语言。 之前介绍过数据驱动编程《什么是数据驱动编程》。里面介绍了一个简单的数据驱动手法。今天...
    playboy阅读 551评论 0 0
  • Table-Driven Approach表驱动法 表驱动法,用查表的方法获取数值 我们平时查字典以及念初中时查《...
    一曲广陵散阅读 734评论 0 0
  • 最近读到周国平的这样一段话。 我天性不宜交际。在多数场合,我不是觉得对方乏味,就是害怕对方觉得我乏...
    一点羽山阅读 295评论 0 0
  • 文 | 南北不分 01 北方的雨敲不响竹影摇曳的七月,南方的风吹不开大漠长空的七月,我从仲夏的心里抽出来,看着盛开...
    南北不分阅读 307评论 1 1