cuốn sách gpt4 ai đã làm

c++ - 指南 : while vs for

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 23:07:51 26 4
mua khóa gpt4 Nike

Tuyên bố miễn trừ trách nhiệm: Tôi đã thử tìm kiếm các câu hỏi tương tự nhưng nó trả về thông tin về mọi câu hỏi C++... Ngoài ra, tôi sẽ đánh giá cao bất kỳ ai có thể nghĩ ra tiêu đề hay hơn.

Có hai cấu trúc vòng lặp nổi tiếng trong C++:whilefor.

  • Tôi cố tình phớt lờ nó làm...trong khi cấu trúc, nó là vô song
  • Tôi biết std::for_eachBOOST_FOREACH, nhưng không phải mọi vòng lặp đều như vậy cho mỗi

Bây giờ, tôi có thể hơi lo lắng, nhưng nó luôn khiến tôi phải suy nghĩ更正Mã như thế này:

int i = 0;
trong khi (tôi < 5)
{
// làm việc gì đó
++i; // Tôi tốt bụng và sử dụng ký hiệu tiền tố... mặc dù tôi thường chứng kiến ​​hậu tố
}

và chuyển đổi nó thành:

vì (int i = 0; i < 5; ++i)
{
// làm việc gì đó
}

Đối với tôi, có vẻ như trong ví dụ này for Ưu điểm rất đa dạng:

  1. địa phương:Biến i chỉ tồn tại trong phạm vi vòng lặp
  2. Đóng gói: "Điều khiển" vòng lặp đã được đóng gói, vì vậy chỉ cần nhìn vào khai báo vòng lặp, tôi có thể xác định xem nó có được định dạng chính xác hay không (và sẽ chấm dứt...), tất nhiên giả sử rằng các biến vòng lặp không được sửa đổi thêm trong phần thân
  3. Nó có thể được nội tuyến, nhưng không phải lúc nào tôi cũng khuyên dùng nó (nó có thể dẫn đến các lỗi phức tạp)

Vì vậy, tôi có xu hướng không sử dụng while,Có lẽ trong khi (đúng) Ngoại trừ thành ngữ, nhưng tôi đã không sử dụng nó trong một thời gian (ý định chơi chữ). Tôi có xu hướng sử dụng nó ngay cả trong những tình huống phức tạp. for Cấu trúc, mặc dù trên nhiều dòng:

// Tôi cũng là fan của typedefs
for (const_iterator it = myVector.begin(), end = myVector.end();
it != end && isValid(*it);
++nó)
{ /* làm việc gì đó */ }

Tất nhiên bạn có thể sử dụng while để làm điều này, nhưng (1) và (2) sẽ không được xác minh.

Tôi muốn tránh những nhận xét "chủ quan" (kiểu "Tôi thích nó/mặc dù nó tốt hơn") và tôi chắc chắn quan tâm đến việc trích dẫn các nguyên tắc/tiêu chuẩn mã hóa hiện có.

biên tập:

Tôi có xu hướng bám vào (1) và (2) càng nhiều càng tốt, (1) vì những nơi được đề xuất >> Tiêu chuẩn mã hóa C++: Mục 18 và (2) bởi vì nếu tôi không phải quét toàn bộ vòng lặp cơ thể để tìm kiếm những thay đổi có thể có đối với biến điều khiển (điều mà tôi cho là hiển nhiên khi sử dụng lần thứ 3 forbiểu thức đề cập đến một biến vòng lặp).

Tuy nhiên, như dưới đây bạn gái Như được hiển thị, while có công dụng của nó:

trong khi (obj.advance()) {}

Xin lưu ý rằng điều này không đúng while lảm nhảm, nhưng hãy cố gắng tìm ra cách sử dụng dựa trên tình huống while hoặc for cái nào trong số chúng hữu ích (vì lý do chính đáng, không chỉ vì lượt thích).

câu trả lời hay nhất

Không phải tất cả các vòng lặp đều được sử dụng để lặp:

while(điều kiện) // đọc ví dụ: while điều kiện giữ
{
}

Không sao đâu, mặc dù cảm thấy gượng ép:

cho(;điều kiện;)
{
}

Bạn sẽ thấy điều này thường xuyên với bất kỳ nguồn đầu vào nào.

Bạn cũng có thể có sự lặp lại ngầm định:

while(obj.advance())
{
}

Một lần nữa, có vẻ như buộc phải sử dụng for.

Hơn nữa, khi buộc phải sử dụng for thay vì while Mọi người có xu hướng lạm dụng nó khi:

for(A a(0); foo.valid(); b+=x); // a và b không liên quan đến điều khiển vòng lặp

Về c++ - Hướng dẫn: while vs for, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/1600282/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress