使用文本文件時,繼續可以在While循環中使用嗎?在While循環中使用繼續
我想做一些處理並檢查一些值。如果屬實,我想跳過一個迭代。如果爲false,我想繼續下一行(繼續處理)。
在這種情況下繼續是否跳過迭代?
使用文本文件時,繼續可以在While循環中使用嗎?在While循環中使用繼續
我想做一些處理並檢查一些值。如果屬實,我想跳過一個迭代。如果爲false,我想繼續下一行(繼續處理)。
在這種情況下繼續是否跳過迭代?
測試甚至沒有必要。 The documentation已經告訴你答案:
在Delphi代碼中,繼續過程會導致控制流繼續執行下一個循環的while,repeat或repeat語句。
請注意,沒有關於循環所做的事情的警告。 Continue語句繼續執行任何循環的下一次迭代。在你的情況下,這意味着Eof將被再次檢查,然後循環的主體將運行。
我覺得哪裏有歧義就是「下一次迭代」的意思。這對於'''',''while'和'repeat'來說意味着什麼?我確實知道這個問題的答案,但是我認爲,如果文檔拼寫出來的話會更好。 –
例如跳到下一個迭代將更加清晰。 – NGLN
似乎一個快速的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
僅在循環超過Continue
測試時遞增。
A while
以同樣的方式工作,無論您是遞增整數,連接字符串還是從文本文件中讀取數據。 A while
是while
是while
無論你如何使用它。您只需在上面的代碼中確保DoSomething
實際上讀取文件中的下一行,否則您將以連續循環結束。
**版主說明**請保持註釋的建設性和主題。我已經刪除了這個答案下的評論,因爲它們退化成了noise_。 –
我有時會發現,如果可以跳過繼續,它會使代碼更加清晰。在你的情況:如果(AcctTag <>'')和(MasterId <>'')Then DoSomething; – johnny
@johnny完全同意,繼續就像goto,非常謹慎地使用它或面對意大利麪代碼怪物的憤怒。 – Johan