2011-08-30 44 views
5

Có thể tiếp tục sử dụng trong vòng lặp while khi làm việc với tệp văn bản không?Sử dụng Tiếp tục trong vòng lặp while

Tôi muốn thực hiện một số quy trình và kiểm tra một số giá trị. Nếu đúng, tôi muốn bỏ qua một lần lặp lại. Nếu sai, tôi muốn tiếp tục với các dòng tiếp theo (tiếp tục xử lý).

Tiếp tục trong trường hợp này có bỏ qua một lần lặp lại không?

+1

Đôi khi tôi thấy nó làm cho mã rõ ràng hơn nếu bạn có thể bỏ qua tiếp tục. Trong trường hợp của bạn: Nếu (AcctTag <> '') Và (MasterId <> '') Sau đó DoSomething; – johnny

+1

@ johnny, hoàn toàn đồng ý, tiếp tục giống như một goto, sử dụng nó với sự chăm sóc cực độ hoặc đối mặt với cơn thịnh nộ của quái vật mã spaghetti. – Johan

Trả lời

7

Kiểm tra thậm chí không cần thiết. The documentation đã cho bạn biết câu trả lời:

Trong mã Delphi, quy trình tiếp tục khiến luồng kiểm soát tiến hành lần lặp tiếp theo kèm theo, trong khi hoặc lặp lại câu lệnh.

Lưu ý rằng không có cảnh báo nào về vòng lặp đang làm. Câu lệnh Tiếp tục chuyển sang lần lặp tiếp theo của bất kỳ vòng lặp nào. Trong trường hợp của bạn, điều đó có nghĩa là Eof sẽ được kiểm tra một lần nữa, và sau đó cơ thể của vòng lặp sẽ chạy.

+0

Tôi nghĩ nơi có sự mơ hồ là ý nghĩa của "lần lặp tiếp theo". Điều này có ý nghĩa gì đối với 'for',' while' và 'repeat'? Tôi biết câu trả lời cho câu hỏi này, nhưng tài liệu sẽ tốt hơn nếu nó viết ra, theo quan điểm của tôi. –

+0

Ví dụ: _jumps_ đến lần lặp tiếp theo sẽ rõ ràng hơn. – NGLN

12

Có vẻ một bài kiểm tra nhanh 30 giây sẽ trả lời nhanh hơn bài đăng ở đây. :)

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. 

Sample output

Lưu ý rằng i được tăng lên trước khi cuộc gọi đến Continue, mà kết quả trong j hiển thị số lẻ, tôi hiển thị even? j chỉ tăng lên khi vòng lặp vượt qua kiểm tra Continue.

A while hoạt động theo cách tương tự cho dù bạn đang tăng số nguyên, nối một chuỗi hoặc đọc từ tệp văn bản. A whilewhilewhile bất kể bạn sử dụng nó như thế nào. Bạn chỉ cần chắc chắn rằng, trong mã của bạn ở trên, rằng DoSomething thực sự đọc dòng tiếp theo từ tệp hoặc bạn sẽ kết thúc trong một vòng lặp liên tục.

+1

** Ghi chú của người kiểm duyệt ** _Vui lòng giữ các nhận xét mang tính xây dựng và về chủ đề. Tôi đã xóa nhận xét trong câu trả lời này vì chúng đã bị biến thành tiếng ồn_. –

Các vấn đề liên quan