令人郁闷的FOR循环的delphi实现

                            
funtion   getcount   :   Integer;   
  begin  
      result   :=   0;  
  end;  
   
  ....  
      for   I   :=   0   to   getcount   do  
      begin  
          if   xxx   then  
              break;  
      end;  
      showMessage(i);  
      执行的结果竟然不是0,而是一个随机的大数。这个也不是我猜的,delphi的帮助里面说的也是这样:“If   initialValue   is   greater   than   finalValue   in   a   for...to   statement,   or   less   than   finalValue   in   a   for...downto   statement,   then   statement   is   never   executed.   After   the   for   statement   terminates   (provided   this   was   not   forced   by   a   break   or   an   exit   procedure),   the   value   of   counter   is   undefined.”  
      我们对FOR循环的理解是,置初值,然后判断,通过的话执行,否则跳出。delphi的这个实现打破了这个常规理解。  
      随便使用一个C的编译器,甚至是borland的BCB。  
      int   i;  
      for(i=0;i<0;i++);  
      printf("%d",i);  
      最后的结果都是0。

查看回复