Sự khác nhau giữa vòng lặp for và vòng lặp while trong C, C++, Java,…

Sau một thời gian học đại học, mình nhận thấy có rất nhiều bạn cảm thấy khó khăn trong việc phân biệt giữa vòng lặp for và vòng lặp while trong khi học. Vì vậy, hôm nay mình sẽ viết bài viết này để giúp các bạn có cái nhìn chính xác hơn về 2 vòng lặp phổ biến này nhé.

Lưu ý nho nhỏ: ở một số ngôn ngữ như Python, cú pháp của vòng lặp for sẽ khác với những gì bài viết đề cập

Điều đầu tiên mà ta thấy trong sự khác biệt giữa chúng là cú pháp
Đầu tiên là vòng lặp for 

for(initialization; condition; increment/decrement)
{
//statement
}

Ở vòng lặp for chúng ta phải truyền vào 3 biểu thức:

  • Khởi tạo
  • Điều kiện
  • Sự tăng/giảm

Tiếp theo là vòng lặp while

while(condition)
{
//statement
}

Ở vòng lặp while chúng ta chỉ cần truyền vào 1 biểu thức là biểu thức điều kiện

Sự khác biệt tiếp theo nằm ở chỗ cách chúng hoạt động
Chính vì sự khác nhau trong cú pháp khiến cho cách thức hoạt động của 2 vòng lặp cũng có sự khác biệt
Ở vòng lặp for thì trước tiên chúng sẽ thực hiện lệnh khởi tạo trước tiên. Sau đó, nó sẽ kiểm tra xem điều kiện có thỏa mãn hay không sau đó mới thực hiện các lệnh trong vòng lặp. Cuối cùng, chúng thực hiện lệnh tăng hoặc giảm và tiếp tục một vòng lặp mới cho tới khi điều kiện trả về sai

Sơ đồ vòng lặp for

Còn ở vòng lặp while sẽ có sự khác biệt. Đầu tiên, nó sẽ kiểm tra xem điều kiện. Nếu điều kiện là đúng và chúng sẽ thực hiện vòng lặp và chỉ kết thúc khi điều kiện sai

Sơ đồ vòng lặp while

Sự khác nhau giữa mục đích sử dụng
Chính vì sự khác nhau mà mình đã kể ở trên mục đích sử dụng của chúng cũng khác nhau

Vòng lặp for sẽ được sử dụng khi chúng ta đã biết trước được số lần lặp cùng với đó là khi lệnh khởi tạo và lệnh tăng/giảm đơn giản VD: xét tuần tự các thành phần trong một mảng, hay xét các số trong khoảng từ m tới n,…

Vòng lặp while sẽ được sử dụng khi chúng ta khó mà có thể biết được số lần lặp lại của nó hay việc khởi tạo cho vòng lặp khá phức tạp VD: tránh việc người dùng nhập sai đầu vào, kiểm tra xem hệ thống mạng có còn hoạt động hay không,…

4 thoughts on “Sự khác nhau giữa vòng lặp for và vòng lặp while trong C, C++, Java,…”

Leave a reply to Lương Thế Hải Cancel reply