zoukankan      html  css  js  c++  java
  • 多元素判断的程序的一个简单实现方法

    现在我们要实现这样一个程序片段(伪代码):

    array1={e11,e12,e13,...};

    array2={e21,e22,e23,...};

    array3={e31,e32,e33,...};

    .......

    arrayn={en1,en2,en3,...};

    if elem ∈ array1

        exp1;

    else if elem  ∈ array2

       exp2;

    ......

    else if elem  ∈ arrayn

      expn;

    每个判断都是在一个数组中寻找某个元素是否存在,该如何实现呢?

    将elem与数组的每个元素依次比较,比较表达式之间用或连接起来,这是一个办法。但这个方法在数组元素较多时会使条件表达式变得冗长,能否考虑使用for循环呢?

    棘手的是if后面不能直接接for语句,我们必须做一下变通,先使用for语句判断elem属于哪一个数组,并用一个标识符flag来标示,接着再用标识符来控制执行语句。同样以伪代码来说明:

    for(arrayi[j])     //i=1,2,3,...,n

      if(elem==arrayi[j])

       {

          flag=flagi;

          break;

        }

    switch(flag)

    {

      case flag1:exp1;

     case flag2:exp2;

     ......

     }

    凡是一次判断涉及多个元素的程序都可以用这种办法来做。

    这种办法有一个不足之处,当elem不是属于最后一个数组的时候,对elem所属数组判断之后的判断是多余的。用goto跳转可以解决,有没有更好的办法?

        

  • 相关阅读:
    数据结构(二)(三)栈和队列
    数据结构(一)线性表
    中信卡笔试代码
    Jenkins搭建-简单使用
    python 生成指定两个ip间的所有ip
    形象理解 什么是磁盘碎片
    形象理解软件位宽 32位和64位的区别
    看板娘>_
    Win10一张网卡设置多个ip地址
    VMware ubuntu安装tools灰色?
  • 原文地址:https://www.cnblogs.com/yapollo/p/2747205.html
Copyright © 2011-2022 走看看