2010-02-01 70 views
11

Bất cứ ai có thể cho tôi biết những gì được gửi trong khi vòng lặp trong C + +? Xin vui lòng cho tôi một ví dụ bằng cách sử dụng sentinel trong khi vòng lặp.Sentinel trong khi vòng lặp cho C++

+3

Sentinels đã xuất hiện trong 'int main (int argc, char ** argv)': Đối số cuối cùng được chuyển đến chương trình của bạn được theo sau bởi một con trỏ rỗng. Vì vậy, nghiêm túc nói rằng bạn không cần 'argc': Chỉ cần lặp qua' argv' cho đến khi bạn nhận được một con trỏ null. –

Trả lời

23

A "trọng điểm" trong bối cảnh này là một giá trị đặc biệt dùng để báo hiệu kết thúc một chuỗi. Thông báo phổ biến nhất là \ 0 ở cuối chuỗi. Một "vòng lặp nội tuyến được gửi" thường có dạng:

while (Get(input) != Sentinel) { 
    Process(input); 
} 
+0

Là một "vòng lặp gửi trong khi" chỉ là một tên dài cho một "vòng lặp while" sau đó? Hay nó cụ thể hơn? –

+0

@LupusOssorum: Nó cụ thể hơn. Đó là một "trong khi các sentinel đã không được nhìn thấy" -loop. – MSalters

0

Biến này thường là biến boolean (true hoặc false) được đặt thành false khi điều kiện không hài lòng và được đặt thành true khi điều kiện. Sau đó, chúng ta có thể lặp lại miễn là sentinel là false.

Ví dụ:

bool acceptedAnswer = false; 
while (acceptedAnswer == false) 
{ 
    refreshPage(); 
    if (hasBeenAccepted()) 
    { 
    acceptedAnswer = true; 
    } 
} 
+0

Điều đó không đúng. Đó chỉ đơn giản là một điều kiện chấm dứt, hoặc một "bảo vệ". Như những người khác đã nói, một sentinel là một giá trị đặc biệt trong một iteration tín hiệu để kết thúc vòng lặp. –

1

Là một phụ lục để trả lời JRL của ..

Xin lưu ý rằng không có gì sai trái với yêu cầu câu hỏi này, nhưng trong tương lai bạn có thể tìm thấy sự giúp đỡ trực tiếp hơn bằng cách vào dictionary.com và nhìn lên những từ bạn don không biết.

chỉnh sửa: trong trường hợp này, từ điển không có gì để bạn suy nghĩ. Dưới đây là định nghĩa 3 :)

3 Also called tag. Computers. a symbol, mark, or other labeling device indicating the beginning or end of a unit of information. 
+0

Có nhưng từ điển không cung cấp ví dụ. Những người khác cũng có thể cần một ví dụ để hiểu rõ hơn. – olibre

0

Một sentinal là một giá trị đặc biệt trong danh sách các mục sẽ luôn làm cho trình vòng lặp dừng lại.

Ví dụ: trình kết thúc số không trong chuỗi ASCIIZ đóng vai trò là tình trạng.

Danh sách được liên kết thường có con trỏ NULL và như vậy.