19 Bình luận
  • accelerando

    @anhpndnet giải thích đơn giản là

    - while () {} kiểm tra điều kiện trước, điều kiện ok rồi mới làm

    - do {} while () là làm trước rồi mới kiểm tra

    cả 2 đều là lệnh lặp (tức là điều kiện OK thì lại làm tiếp)

    ---

    lấy ví dụ thực tế:

    - việc cần làm là đưa tiền cho vợ

    - điều kiện là vợ vui vẻ

    vậy giờ bác có 2 lựa chọn:

    - cứ đưa tiền cho vợ, lúc nào vợ vui thì thôi (do - while)

    - kiểm tra xem vợ vui chưa, vui rồi thì thôi ko đưa, còn nếu không vui thì đưa (while - do)

    (giả dụ mỗi lần đưa 1T, lúc nào ok thì dừng. Lúc buồn ít thì đưa 5 lần, buồn nhiều đưa 10 lần, vd thế)

    Lúc nào thì chọn 1, lúc nào chọn 2? Quá đơn giản, lúc mà bác biết chắc chắn vợ đang không vui thì bác do - while; còn lúc bác không biết chắc thì bác while - do

  • haiyannotme

    giống cái ảnh lõi cuộn giấy vệ sinh minh họa cho null

  • anhpndnet

    Cái này nghĩ là sao nhỉ ?

    • Mr_TK

      @anhpndnet check điều kiện trước khi thực hiện lệnh chạy thì nếu gặp bờ rìa nó sẽ dừng lại. Check điều kiện sau thì nó chạy đến vực rồi mới dừng, nôm na là có thể gặp lỗi. Em ko phải coder

    • anhpndnet

      @Mr_TK mình cũng tạm hiểu thế nhưng mình thắc mắc là nếu nó đã vô dụng kiểu như hình trên thì người ta còn làm theo cách đó để làm gì đâu nhỉ

    • inlephant

      @anhpndnet ko khác nhau gì nhiều đâu bác ạ. 1 cái chạy từ 0 đến n-1, 1 cái từ 1 đến n thôi. Khi bác phải chạy ít nhất 1 lần để có dữ liệu thì cái thứ 2 tiện hơn.

    • vitoj78640

      @anhpndnet thực tế cái vòng lặp thứ 2 được sử dụng rất nhiều, nhất là trong trường hợp đọc file theo từng block data (nói chung là streaming data processing).

    • anhpndnet

      @inlephant @vitoj78640 mấy bác giải thích càng khiến mình lú hơn mình mới chỉ đọc học Python sơ sơ để chạy phân tích dữ liệu thôi chứ không rành lập trình cho lắm

    • KaZaT

      @anhpndnet vậy bác chắc không phải coder rồi :v

    • vitoj78640

      @anhpndnet dễ hiểu mà bác, ví dụ bác đọc data từ file, nhất là file lớn, bác sẽ chỉ đọc từng block 4k bytes, bác phải đọc thử trước 1 phần, nếu file có data hoặc chưa kết thúc file thì mới chạy tiếp, như vậy thì bác phải run() trước, sau đó mới kiểm tra điều kiện để lặp lại chạy tiếp.

    • accelerando

      @anhpndnet giải thích đơn giản là

      - while () {} kiểm tra điều kiện trước, điều kiện ok rồi mới làm

      - do {} while () là làm trước rồi mới kiểm tra

      cả 2 đều là lệnh lặp (tức là điều kiện OK thì lại làm tiếp)

      ---

      lấy ví dụ thực tế:

      - việc cần làm là đưa tiền cho vợ

      - điều kiện là vợ vui vẻ

      vậy giờ bác có 2 lựa chọn:

      - cứ đưa tiền cho vợ, lúc nào vợ vui thì thôi (do - while)

      - kiểm tra xem vợ vui chưa, vui rồi thì thôi ko đưa, còn nếu không vui thì đưa (while - do)

      (giả dụ mỗi lần đưa 1T, lúc nào ok thì dừng. Lúc buồn ít thì đưa 5 lần, buồn nhiều đưa 10 lần, vd thế)

      Lúc nào thì chọn 1, lúc nào chọn 2? Quá đơn giản, lúc mà bác biết chắc chắn vợ đang không vui thì bác do - while; còn lúc bác không biết chắc thì bác while - do

    • haiyannotme

      @anhpndnet một cái thì check xem hoa đã có chủ chưa rồi mới tán, một cái thì tán trước rồi check sau

    • Ghim

      Thực tế thì 2 lệnh thay thế cho nhau được

  • fleet

    while ko còn đc sử dụng nhìu trong ngôn ngữ lập trình phổ biến hiện nay.

  • winter_burn

    Phim con gà tốc độ này coi cuốn phết, với cả nàng tiên cá với con cá mập, 3 con gián =]]

  • thangtm

    Có những case phải "do" thử mới biết có thỏa mãn hay ko. chứ ko phải lúc nào cũng why xong do dc

Website liên kết