Loops ada中的循环及其实现

Loops ada中的循环及其实现,loops,ada,Loops,Ada,下面是一段代码,对循环的实现有疑问 C := character'last; --'// SO code colorizer hack I := 1; K : loop Done := C = character'first; --' Count2 := I; Exit K when Done;

下面是一段代码,对循环的实现有疑问

               C := character'last; --'// SO code colorizer hack
               I := 1;
               K : loop
                  Done := C = character'first; --'
                  Count2 := I;
                  Exit K when Done;
                  C := character'pred(c);  --'
                  I := I + 1;
               end loop K;

谁能告诉我“K”代表什么?我想它不是一个变量。“K”如何控制循环的执行?

K
是循环的名称。
end循环
Exit
语句引用该名称,以明确退出的是哪个循环


将其称为“循环语句标识符”。

K
是循环的名称。
end循环
Exit
语句引用该名称,以明确退出的是哪个循环


将其称为“循环语句标识符”。

K是命名循环的标签。哇,我已经很久没有看到任何Ada了。

K是一个命名循环的标签。哇,我已经很久没有看到Ada了…

如前所述,K是循环的标签。它允许您识别特定循环以帮助可读性,还允许您从一组嵌套的封闭循环中有选择地退出特定循环(即作为“转到”…shhh!:-)

下面是一个人为的示例(未编译或检查):


如前所述,K是循环的标签。它允许您识别特定循环以帮助可读性,还允许您从一组嵌套的封闭循环中有选择地退出特定循环(即作为“转到”…shhh!:-)

下面是一个人为的示例(未编译或检查):


K本质上是循环的名称。退出k告诉代码停止循环,并在循环k结束后转到下一个语句


您通常不需要命名循环,因为您可以说
exit
,它将退出封闭的循环。但是,如果在另一个循环中嵌套了一个循环,并且希望退出的不是exit语句周围的循环,而是最外层的循环,则可能需要执行类似操作。

K本质上是循环的名称。退出k告诉代码停止循环,并在循环k结束后转到下一个语句


您通常不需要命名循环,因为您可以说
exit
,它将退出封闭的循环。但是,如果在另一个循环中嵌套了一个循环,并且希望退出的不是exit语句周围的循环,而是最外层的循环,那么可能需要执行类似操作。

Bah。不要用可怕的“g字”吓跑初学者<代码>退出与
如果
循环
,和
案例
都是。Bah一样,都是一种转到。不要用可怕的“g字”吓跑初学者<代码>退出与
如果
循环
、和
案例
是一样的,都是一种转到。
   S : Unbounded_String;
   F : File_Type;
   Done_With_Line : Boolean := False;
   All_Done       : Boolean := False;
begin
    Open(F, In_File, "data_file.dat");
  File_Processor:
    while not End_Of_File(F) loop
        S := Get_Line(F);
       Data_Processor:
        for I in 1 .. Length(S) loop
           Process_A_Character
                (Data_Char => Element(S, I),   -- Mode in
                 Line_Done => Done_With_Line,  -- Mode out
                 Finished  => All_Done);       -- Mode out

           -- If completely done, leave the outermost (file processing) loop
           exit File_Processor when All_Done;

           -- If just done with this line of data, go on to the next one.
           exit Data_Processor when Done_With_Line;
        end loop;
    end loop File_Processor;
    Close(F);
 end;