DELPHI中的IF  THEN  语句:以下格式可以正常使用吗IF        THEN
  BEGIN
    IF    THEN
       BEGIN       END
    ELSE
       BEGIN       END
   END
ELSE
   BEGIN
      END
END;
这个结构中的第一个ELSE  能分清是属于哪一个IF吗, 我想让它属于第二个IF. IF语句的嵌套有什么规则?

解决方案 »

  1.   

    好像最后一个end是多余的,我不知道你在问什么
      

  2.   

    如果嵌套太多,建议你每层都要用begin...end括起来,这样就会清晰很多无论多少层都不会有问题,当然这种结构好不好另说
      

  3.   

    楼主去装一个CNPACK,你的IF,ELSE一目了然!
      

  4.   

    IF THEN
    BEGIN
        IF THEN
        BEGIN    END
        ELSE
        BEGIN    END;
    END
    ELSE
    BEGIN
        END
    这样就行了
    最后一个确实是多出来的,
      

  5.   

    你最好在寫代碼的時候有個層次感,這樣就能一目了然地看清了,寫好一個begin後就馬上把end寫上,然後再在中間寫代碼,這樣也能避免多寫或是少寫了
      

  6.   

    做个自动完成模板:
    be ctrl-j
    begin
      |
    end
      

  7.   

    最後一個end多了,安裝一個cnpack,萬事解決
      

  8.   

    建议安装CNpack辅助工具包,有颜色的时候很好分清楚
      

  9.   

    安装CNpack辅助工具包,自动给你对应上,每对都有连接线!
      

  10.   

    弄了个图给你看下,最后一个END是多余的,被我删除了!
      

  11.   

    cnpack  会显示颜色 
    舒服
      

  12.   

    多了一个end;啊
    if嵌套很简单的,只要分清楚层次就可以了
      

  13.   


    if ** then
    begin
      if ** then
      begin
        *****;
      end else begin
        *****;
      end else begin
        *****;
      end;
    end;
    这样就可以了
      

  14.   

    哦,刚才忘记了,里面那个if判断,第一个else需要加上if判断才行,如下才对:if ** then
    begin
      if ** then
      begin
        *****;
      end else if *** begin
        *****;
      end else begin
        *****;
      end;
    end;
      

  15.   

    从代码看第一个ELSE就是属于第二个IF
    最后一个end不属于IF,是函数或外围代码段结尾,或多余编码要养成良好风格,如果IF嵌套过多,建议“重构”一下
      

  16.   

    你想问什么??
    if xxx then xxx
    elsexxx在这里你想表达什么??
      

  17.   

    begin …… and括起来就行了,它相当于c++里面的{   }语句。
      

  18.   

    楼主安装一个CnPack,delphi专业的IDE包,而且还有很多其他功能,像这样的begin..end就看的清晰多了
    www.cnpack.org官网有下,完全开源,国人的杰作。
      

  19.   

    else前面都不要加分号,如果你用begin...and,里面的句子就要加分号,而且看起来会比较清楚,不会少了与if 对应的else
      

  20.   

    楼主装个CNPACK,可以用颜色区分多个IF
      

  21.   

    想要第1个ELSE属于第2个IF就这样写:
    IF THEN
      BEGIN
        IF THEN
          BEGIN      END
        ELSE
          BEGIN    END
      END;
    ELSE
      BEGIN
          END;
      

  22.   

    想要第1个ELSE属于第2个IF就这样写:
    IF THEN
      BEGIN
        IF THEN
          BEGIN      END
        ELSE
          BEGIN      END;
      END
    ELSE
      BEGIN
          END;
      

  23.   

    Cnpack 可以看的很清晰
    第一个ELSE在 第一个IF 的begin  end中 当然是属于第二个IF的 
      

  24.   

    if ** then
    begin
      if xxx then
        begin
           xxx;
        end 
      else if xxx 
        begin
        xxx;
        end 
      else 
        begin
        xxx;
        end;
    end;
    下载一个CNPACK,就自动有颜色对应,也有快捷键的啊,,就很有条理了
      

  25.   

    最后个end多了,其实装个cnpack就可以清楚看见
      

  26.   

    多了一个end,安装 cnpack   每个循环 各个对应的颜色会不同的  这样就很好区分了
      

  27.   

    建议安装cnpack  设置一下 各个嵌套的颜色 使用起来方便多了 
      

  28.   

    我们公司使用固定的写法
    if ...then
    begin
      if ... then
      begin
      end;
    end
    else
    begin
      if ... then
      begin
      end
      else
      begin
      end;
    end
      

  29.   

    只要是begin和end成对出现就可以,IF与ELSE遵循就近原则