在以下代码中: if (xinghao=3112) then
       begin
         maichongcs=3200;       位置1
         cishu=343;             位置2
       end                      位置3
    else
      begin
      if (xinghao=3113)  then  maichongcs =1600  位置4
        else
 begin
            cuowu = 7117;
    return cuowu;                       位置5
         end                                     位置6  
      end;请问以上6个位置处,哪些地方需要加分号,哪些地方不能加分号.

解决方案 »

  1.   

    你是想出题考我们还是自己不懂?
    弄个按钮COPY过去自己看,我服了
      

  2.   

     if (xinghao=3112) then
      begin
      maichongcs=3200; 位置1    //必加
      cishu=343; 位置2   //可不加
      end 位置3  //不加
      else
      begin
      if (xinghao=3113) then maichongcs =1600 位置4   //不加
      else
    begin
      cuowu = 7117;
    return cuowu; 位置5  //可不加,这里不对吧,delphi可没有return啊
      end 位置6   
      end;
      

  3.   

    强调else前面一定不能有 分号
      

  4.   

    end前面可以不加,但最好加。else前面一定不能加。其他必须要加
      

  5.   


     if (xinghao=3112) then
      begin
      maichongcs=3200; 位置1  必须加
      cishu=343; 位置2 必须加
      end 位置3 必须不加
      else
      begin
      if (xinghao=3113) then maichongcs =1600 位置4 必须不加,建议都写成if ... then begin..end这样的
      else
    begin
      cuowu = 7117;
    return cuowu; 位置5 必须加
      end 位置6  最好加上,如果后面再写代码的话这里会报错 
      end;  if ... then begin
       ...
      end else begin
       ...
      end;
    建议if语句都写成这样的格式,代码风格好,易阅读,不容易出现if的嵌套错误
      

  6.   

    放到delphi里调试一下,就会明白
      

  7.   


    else前面一定不能加 的语法,对于 把一段代码移出或移入if else之间,很不方便(需要人为加或删分号)
      

  8.   

    那END后面加不加分号怎么决定呢。
      

  9.   


    把end也当成一个普通的语句好了:
    如果它在另一个end前面,可以不加,但最好加。
    如果它在else前面一定不能加。
    其他必须要加
      

  10.   

    规则是这样的:
    1. 语句(简单语句和复合语句)后面添加分号
    2. procedure、function或复合语句内最后一条简单语句可以省略分号
    3. 添加分号不能导致复合语句不完整简单语句: 
      I := 10;
    复合语句:由多个简单语句一起构成,整体作为一个简单语句
    例:
      if 
        ...
      else 
        ...;  begin
        I := 10;
        J := 11;
      end;
    if (xinghao = 3112) then
    begin
       maichongcs := 3200; //位置1
       cishu := 343;       //位置2
    end                    //位置3
    else                   //位置A
    begin
      if (xinghao = 3113) then 
        maichongcs := 1600 //位置4
      else                 //位置B 
      begin
        cuowu := 7117;
        return cuowu;      //位置5
      end                  //位置6   
    end                    位置1、位置2是简单语句,按照规则1,需要添加分号
    位置3,按照if ... else ...语句的语法规则(if和else之间不使用分号), if 内容体为复合语句,复合语句结尾不添加分号,按照规则3,不添加
    位置4,按照if ... else ...语句的语法规则(if和else之间不使用分号),if内容体味简单语句,语句结尾不添加分号,按照规则3,不添加
    位置5是位置B中else内容体中的最后一脚语句,按照规则2,可添可不添加
    位置6是位置A中else内容体中的最后一条语句,按照规则2,可添可不添加。
    这里有点绕,不过理解简单语句和复合语句再配合Delphi的语法规则,就很容易理解了。
      

  11.   

    位置5那里好像不对 return cuowu,应该是 result := cuowu;
    delphi的function中默认定义一个变量result(不需要额外定义),用于做返回值,变量类型为function定义的数据类型。
      

  12.   


    我也是这样理解的,else前的不能加。我的习惯是除了绝对不能加的,那些可加可不加的都加上。
    个人观点,勿板砖:)
      

  13.   

    基礎if (xinghao=3112) then
      begin
      maichongcs=3200; 位置1  必须加
      cishu=343; 位置2 必须加
      end 位置3 不加
      else
      begin
      if (xinghao=3113) then maichongcs =1600 位置4 不加
      else
    begin
      cuowu = 7117;
    return cuowu; 位置5 必须加
      end 位置6  必须加 
      end;
      

  14.   

    关于Pascal语言中的分号
    http://www.cnblogs.com/egust/archive/2010/08/12/1798356.html
      

  15.   

    这也要问?自己调试下,我一般是除了ELSE前面不加,其它都加上,
      

  16.   

    正確代碼如下: if (xinghao=3112) then
      begin
      maichongcs=3200; 位置1
      cishu=343; 位置2
      end 位置3
      else
      begin
      if (xinghao=3113) then maichongcs =1600 位置4
      else
    begin
      cuowu = 7117;
    return cuowu; 位置5
      end ;位置6   
      end;PS : 不知道你從哪裡學來的Return,Delphi是沒有Return的,除非是你自己寫的.
      

  17.   

    我的if写成这样,大家的呢?if ... then
    begin
      ...
    end else
    begin
      ...
    end