Использование Continue в цикле While
можно ли использовать Continue в цикле While при работе с текстовыми файлами?
Я хотел бы сделать некоторую обработку и проверить некоторые значения. Если true, я хотел бы пропустить итерацию. Если false, я хотел бы продолжить следующий набор строк (продолжить обработку).
while not EOF(InFile) do
begin
DoSomething;
if (AcctTag = '') OR (MasterId = '') then
Continue;
DoSomething;
end;
в этом случае continue пропускает итерацию?
2 ответов
тест даже не надо. документация уже говорит вам в ответ:
в коде Delphi процедура Continue заставляет поток управления перейти к следующей итерации заключительного оператора for, while или repeat.
обратите внимание, что нет никаких оговорок о том, что делает цикл. Оператор continue переходит к следующей итерации любой петли. В вашем случае это означает, что Eof будет проверен еще раз, и тогда тело петли запустится.
кажется, быстрый 30-секундный тест ответит на это быстрее, чем сообщение здесь. :)
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
i, j: Integer;
begin
j := 0;
i := 0;
while i < 10 do
begin
Inc(i);
if Odd(i) then
Continue;
Inc(j);
WriteLn(Format('i = %d, j = %d', [i, j]));
end;
ReadLn;
end.
отметим, что i
увеличивается перед вызовом Continue
, в результате j
отображение нечетных чисел, я показывать even
? j
увеличивается только тогда, когда цикл проходит мимо