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;