if r='0' then j:=j-1;

解决方案 »

  1.   

    j := 1;
    while (j<=6) do
    begin
      r:=Sock_YN(10,d_ip_id[j,1],d_ip_id[j,2]);
      if r= '0' then
      begin
       //
      end
      else
       Inc(j);
    end;
      

  2.   

    在for循环中不能对j进行赋值:j:=j-1;
    根本就编译不过??
    错误如下:
      assignment to for _loop variable 'j';
      

  3.   

    var i,j:Integer;r:string
    for j:=1 to 6 do
    begin
    i:=j;
    r:=Sock_YN(10,d_ip_id[i,1],d_ip_id[i,2]);
    if r='0' then
    begin
    r:=Sock_YN(10,d_ip_id[i-1,1],d_ip_id[i-1,2]);
    end;
    end;
    另外用一个变量i代替j,应该可以。
      

  4.   

    j := 1;
    I := J;
    for j:=1 to 6 do
    begin
    r:=Sock_YN(10,d_ip_id[I,1],d_ip_id[I,2]);  //换成I啦
    if r= '0' then
    begin
    //
    end
    else
    I := J;
    end;
      

  5.   

    看来只能用while语句了,以前也没有注意到这件事。
      

  6.   

    To:thirdapple(第三只苹果) and thirdapple(第三只苹果) 不成呀,
    那样for循环还是往下走了。。
    我是意思是说如果r=0则一直要执行这一句,直到不等于0时再往下走,最好能要这做一下延缓。。
      

  7.   

    就是吗 用while 就可以吗!
       
        延缓用一个奔办法
        加入一个  for 就成
    for j:=1 to 6 do
    begin
    r:=Sock_YN(10,d_ip_id[j,1],d_ip_id[j,2]);
     while r='0' do 
    begin
    //Sock_YN(10,d_ip_id[j-1,1],d_ip_id[j-1,2]);///这句
    end;
      for jjj=0 to 10000 do
      begin
      end; end;试试看   
      

  8.   

    我刚学Object pascal,好像在哪看到说不可以在循环中对循环变量再复制的,不知对不对,没有实践过。
      

  9.   

    改用while吧,应该可以的。
    j := 1;
    while (j<=6) do
    begin
    r:=Sock_YN(10,d_ip_id[j,1],d_ip_id[j,2]);
    if r<> '0' then
    Inc(j);
    end;