Как уже отмечалось, K является меткой цикла.Это позволяет вам идентифицировать конкретный цикл, чтобы улучшить читаемость, а также выборочно выйти из конкретного цикла из набора вложенных вложенных циклов (т. Е. Быть "goto" ... тссс!: -)
Вотнадуманный пример (не скомпилирован проверен):
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;