问一个很菜的问题。两重循环如何跳出一个循环,如何跳出两个循环。最好举个例子。

解决方案 »

  1.   

    例:
    for i:=0 to 1 do
    begin
      for j:=1 to 3 do 
      begin
        dosomething;
        if j=2 then break;
      end;
    end;
      

  2.   

    跳出两个循环:
    n := 0;
    for i:=0 to 1 do
    begin
      for j:=1 to 3 do 
      begin
        dosomething;
        if n=1 then break;
      end;
      if n=1 then break;
    end;
      

  3.   

    同意sysu(死树) 的方法
      

  4.   

    youexception=class(exception);try
     for ...
      for ...
       begin
        do somesthing;
        if ... then
          raise youexception.create;
       end;
    except
      on youexception do ...
    end;raise youexception
      

  5.   

    抛出异常跟GOTO实际上是一个意思
      

  6.   

    var
      a, b: Boolean;
      num1, num2: Integer;
    begin
      a := true;
      b := true;
      num1 := 0;
      num2 := 0;
      while a do
      begin
        Inc(num1);
        if (num1 = 10) or b then  //如果跳出了第二个循环,跳出本循环
          a := false;
        while b do
        begin
          Inc(num2);
          if num2 = 10 then  //跳出了第二个循环
            b := false;
        end;
      end
      

  7.   

    建议在两层中都加上if那种情况break的语句
      

  8.   

    抛个异常 与 GOTO 是完全不同的,异常会直接离开当前函数(除非有Except或Finally)以及调用者的剩余代码...