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跳转可以解决,有没有更好的办法?

        

  • 相关阅读:
    插入排序的算法分析
    SQL的UNION操作
    二分查找的思路
    怎么看吉他简谱
    一句CSS代码杜绝网站iframe挂马
    关于NewFolder.文件夹无法删除的办法
    C#监听USB接入
    C# 系统服务添加安装
    .NET 实现ISAPI过滤器,指定类型文件防下载
    ASP 简单的异或加密方法
  • 原文地址:https://www.cnblogs.com/yapollo/p/2747205.html
Copyright © 2011-2022 走看看