delphi的却不支持!
但并不是delphi笨
你有很多办法可以实现如:
I := 0 ;
repeat 
 .......
 I := I + 10 ;until i >= 100 ;

解决方案 »

  1.   

    哦,谢谢你指出来。
    C和Basic和Matlab程序写多了,初次见到不支持循环变量改变的语言,感到有点吃惊。
      

  2.   

    是不是从VB转过来的?
    只有解释执行的程序才可以在中间修改for循环变量,编译执行(FORTRAN/Pascal/C/C++等)都不行。这不是笨的问题。
    可以用while或repeate循环
      

  3.   

    Delphi2 之前允许
    但32位的for循环已经作了优化处理
    所有就不能在for循环中该变循环变量的值你可以作如下调试
    for I := 5 to 10 do //看看I的值是不是5->10
      Caption := 'ff';
    结果不是!因为for已经作了优化处理procedure TForm1.Button1Click(Sender: TObject);
    var
      I: Integer;
      T: DWORD;
    begin
      T := GetTickCount;
      for I := 1 to 10000000 do ;
      //你可以比较一下它们执行的速度
      ShowMessage(IntToStr(GetTickCount - T)); //39
      T := GetTickCount;
      I := 1;
      while I <= 10000000 do Inc(I);
      ShowMessage(IntToStr(GetTickCount - T)); //59
    end;
      

  4.   

    回 dancemaple朋友:
      我是C转过来的,我还是比较倾向于写for(i=0;i<=100;i+=10)……这样的语句,这样写程序又简短又容易读。对吗?
      

  5.   

    for I := 0 to 10 do
      { 使用 I * 10 也没有什么不方便 }争论语言或者是工具的好坏是没有意义的反正不是信仰什么宗教、什么好用就用什么但不要自己没有能力 驾御她 就说三道四不同语言有不同的特性
    谁叫你不是她的创造者
      

  6.   

    我觉得两者都不错,Pascal的也很清晰。但循环结构Pascal令人不太满意的地方就是for循环变量的递增步长只能为1或-1,而C的可以随意