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

        

  • 相关阅读:
    C#基本语法
    C#程序结构
    C#环境
    C#强大的编程功能
    Razor
    Web Pages
    ASP.NET教程
    [ecmagnet][django] 如何使用django的signal
    [ecmanget][常用标签]bookmark
    [muku][1 初始restful api] chorme安装jsonview 插件
  • 原文地址:https://www.cnblogs.com/yapollo/p/2747205.html
Copyright © 2011-2022 走看看