if (theString.IndexOf(strSegments[i]) != -1)//若theString在条件字串段中
应该是:
if (theString.IndexOf(strSegments[i]) != -1)//若theString中包含有strSegments[i]

解决方案 »

  1.   

    看你的这断话:
    else
    {
    return "ConditionError";
                                continue;
    }
    return 就是跳出这个函数了,当然不会continue.遇到这种问题,单步执行之。
      

  2.   

    还有呀!假如要比较两个字符串最好还是用:
    确定此实例是否与指定的 String 具有相同的值。
    [C#] public bool Equals(string);
      

  3.   

    TO TheAres(班门斧): 
    没说清楚,主要是我在遍历时else的处理不当,因为我需要返回值,现在的处理执行完一次后就跳出。
    同时我加的break是不对的,应当去掉。该方法的功能是:
    根据传入的参数(string theString),检索我定义的string[] strSegments,看输入参数是否包含有字符数组的任一字符,若包含有,则将之赋值给我定义的条件字符strCondition中,并返回“S_OK”,反之返回“ConditionError”.TO snewxf(心疤):
    strSegments[i] 只是theString的一部分而已。
      

  4.   

    还没呢,应该循环语法出的问题,不过我还没解决好
    protected string strCondition;//条件字串
    strCondition="Unknown";
    string[] strSegments={"<Define>","<DateTime>","<AutoCode>"//若theString包含strSegments[i],则将之添加到strCondition中
    public new string AddAND(string theString)
    {
    for (int i=0;i<strSegments.Length;i++)
    {
    //----------------------------------------------//
    if (theString.IndexOf(strSegments[i]) != -1)//若theString在条件字串段中
    {
    if (strCondition=="Unknown")//若是首次添加
    {
    strCondition=theString;
    bDefineCodintion=true;
    return "S_OK";
                                break;
    }
    else//反之
    {
    strCondition=strCondition + "&&" + theString;
    bDefineCodintion=true;
    return "S_OK";
                                break;
    }
    }
    //--------------------以上部分应该没错----------------------------//
    else
    {
    i++;
    //continue;
    if (i==strSegments.Length-1)
    return "Error";
    //问题应该出在这段else部分:如何让程序能实现循环,感觉主要是语法使用不当,请大家帮忙指正。
    }
    }
    }
      

  5.   

    你的程序我帮你调了,不知道你注没注意到,两个break是无法访问的代码!
    你的程序只可能执行一次,因为你的每一步都return了,return不但跳出循环而且跳出此方法,我想你的程序可能要重写了。
      

  6.   

    TO slayersun(难得一见) 
      不好意思,那两个break是应当去掉的,我忘记了,  问题主要是else那部分既要continue ,也要循环完后要return一个string。
      

  7.   

    我刚开始学的,看到这个想了一个方法不知道可不可以,请指教:)
    protected string s=0;
    protected string j=0;
    ......
    addAND(***,j,s)//做方法的时候多做一个传入参数j和s
    if s<strSegments.Length then
    {
       if j=0 then
       {
           addAND(***,j,s)
       }
       s=s+1
    }public new string AddAND(string theString,,string j,string s)
    {
    for (int i=s;i<strSegments.Length;i++)
    {
    if (theString.IndexOf(strSegments[i]) != -1)//若theString在条件字串段中
    {
    if (strCondition=="Unknown")//若是首次添加
    {
    strCondition=theString;
    bDefineCodintion=true;
    j=1;
                                s=strSegments.Length;
                                return "S_OK";
    }
    else//反之
    {
    strCondition=strCondition + "&&" + theString;
    bDefineCodintion=true;
                                s=strSegments.Length;
                                j=1;
    return "S_OK";
    }
    }
    else
    {
        s=i;
                          return "ConditionError";
    }
    }
    }没在机器上试过不知道可不可以,大概还要那里修改一下
      

  8.   

    还有"s=s+1"在
    if j=0 then
       {
           s=s+1;
           addAND(***,j,s);
       }
      

  9.   

    你要是用return的话就肯定要退出循环,你用一个string[]保存一下你要return的string不可以吗?
      

  10.   

    死了~~~j,s是int````啊呀不管了,,反正大体上是这个意思(小毛病肯定还有很多:~(....自己看着改吧.....)