icantech
Lập trình C++
1116
08/11/2023

Hướng dẫn vòng lặp While trong C++

Trong C++, vòng lặp While là một công cụ đắc lực được sử dụng trong hầu như tất cả chương trình code của các lập trình viên. Nếu bạn đang muốn trở thành một lập trình viên C++, việc thành thạo vòng lặp While là một trong những yêu cầu bắt buộc. Trong bài viết này, ICANTECH sẽ cùng bạn tìm hiểu từ A đến Z về vòng lặp While trong C++.

1. Ngôn ngữ lập trình C++ 

C++ là một ngôn ngữ lập trình bậc cao (high-level programming language), được phát triển bởi Bjarne Stroustrup dựa trên ngôn ngữ mẹ là C vào năm 1979. Đây là một ngôn ngữ lập trình hướng đối tượng được ứng dụng rất rộng rãi từ lập trình robot đến lập trình game, từ lập trình tính toán đế khoa học dữ liệu, từ lập trình nhúng đến các phần mềm hệ thống...Ưu điểm chính của ngôn ngữ này là: đơn giản, hiệu quả, thực thi nhanh, hỗ trợ đa nền tảng, cộng đồng phát triển rộng lớn. Đến nay, C++ đã hơn 40 năm tuổi, và có nhiều ngôn ngữ hiện đại ra đời nhưng nó vẫn luôn giữ được vị thế quan trọng của mình.

c-cong-la-gi

2. Cú pháp vòng lặp While trong C++

Các vòng lặp là rất, rất quan trọng đối với lập trình nói chung và ngôn ngữ lập trình C++ nói riêng. Đó là quá trình thực hiện lặp đi lặp lại một câu lệnh hoặc một tập các câu lệnh khi đáp ứng điều kiện do lập trình viên đặt ra. Cách mà vòng lặp thực hiện giống như 1 vòng tròn khép kín, và vòng lặp sẽ kết thúc khi điều kiện đặt ra không được đáp ứng. Tương tự trong ngôn ngữ C, C++ cũng có 3 cấu trúc vòng lặp là:

  • Vòng lặp For
  • Vòng lặp While
  • Vòng lặp Do While

Cú pháp vòng lặp While trong C++ đơn giản như sau:

         while (Điều kiện) 

{Tập lệnh sẽ được thực hiện khi điều kiện thỏa mãn;}

Trong trường hợp bạn cần thực hiện nhiệm vụ nào đó nhiều lần mà không biết chính xác số lần là bao nhiêu thì vòng lặp While là một lựa chọn hoàn hảo. Ví dụ, trong lập trình một ứng dụng phát nhạc, bạn muốn phát một bài hát cho đến khi người dùng ấn phím “dừng”. Rõ ràng, bạn sẽ không thể biết người dùng muốn nghe bài hát ấy bao nhiêu lần, tức là không thể xác định được số vòng cần phải lặp lại, nên phải sử dụng vòng lặp While.

3. Flowchart vòng lặp While trong C++

Flowchart của vòng lặp While trong C++ được mô tả trong hình phía trên (nó tương tự như vòng lặp While trong C). 

flow-chart

Quá trình thực thi vòng lặp While được giải thích chi tiết như sau:

  • Bước 1: Khởi tạo vòng lặp While trong chương trình
  • Bước 2: Chương trình bắt đầu kiểm tra điều kiện vòng lặp
  • Bước 3: Kiểm tra điều kiện: Nếu kết quả kiểm tra trả về là sai thì ngay lập tức vòng lặp sẽ kết thúc. Nếu kết quả trả về là đúng thì phần thân của vòng lặp While sẽ được thực hiện (chuyển sang bước 4).
  • Bước 4: Quá trình thực hiện các tập lệnh trong vòng lặp.
  • Bước 5: Sau khi thực hiện xong các tập lệnh trong thân vòng While, các giá trị của biến liên quan đến điều kiện sẽ được cập nhật mới.
  • Bước 6: Tiến trình xử lý sẽ quay trở lại bước 2.

4. Bài tập vòng lặp While trong C++

Phần này, ICANTECH sẽ giúp các bạn hiểu rõ hơn về vòng lặp While trong C++ thông qua 4 bài tập cụ thể:

4.1. Bài tập 1

Đầu tiên là một bài tập đơn giản giúp bạn biết cách dùng vòng While: Đếm lần lượt các số tự nhiên có 1 chữ số (từ 0 đến 9) và in ra. Lời giải:

#include <iostream>

using namespace std;

int main() {

int n = 10;

int i = 0;

while (i < n) {

cout << i << " ";

i++;}

return 0;}

Trong đoạn code trên, ICANTECH đã sử dụng 2 biến nguyên: n và i, với giá trị khởi tạo ban đầu n=10 và i=0. Sử dụng vòng lặp While với điều kiện i<n để thực hiện lệnh đếm, sau mỗi lần đếm sẽ cộng thêm 1 đơn vị vào i. Như vậy khi i=10 vòng lặp sẽ tự động kết thúc.

c-cong

4.2. Bài tập 2

Đề bài: Viết 1 chương trình trong C++ sử dụng vòng lặp While để đảo ngược giá trị của số 123456789. Lời giải:

#include <bits/stdc++.h>

using namespace std;

int reverse(int n)

{

     int rev = 0;

     while (n > 0) {

          rev = rev * 10 + n % 10; 

          n = n / 10;

     }

     return rev;

}

int main()

{

     int n = 123456789;

     cout << "Số nghịch đảo của 123456789 là: " << reverse(n);

     return 0;}

c-cong

Trong bài tập này, ICANTECH đã sử dụng vòng While kết hợp với một thủ thuật về toán học đơn giản giúp tách từng số hạng ứng với các hàng đơn vị, hàng chục, hàng trăm,...của số 123456789 (dòng code số 7 và số 8). Khi n chạy đến giá trị 1 của hàng trăm triệu, thì phần nguyên của nó khi chia cho 10 sẽ là 0, và không thỏa mãn điều kiện n>0 nên vòng While sẽ dừng lại.

4.3. Bài tập 3

Đề bài: Sử dụng vòng lặp While trong C++ để viết 1 chương trình kiểm tra xem 1 số có phải là số có chữ số đầu tiên và chữ số cuối cùng giống nhau hay không. Chúng ta có thể code như sau:

#include<iostream>

using namespace std;

void palindrome(int n) {int rev=0;

   int temp = n;

   while(n > 0) {rev = rev * 10 + n % 10; 

      n = n / 10;}

   if(temp == rev)

   {cout<<temp<<" là một số đầu cuối giống nhau"<<endl;}   

   else

   {cout<<temp<<" không phải là một số đầu cuối giống nhau"<<endl;}  }

int main() {

   palindrome(121);

   palindrome(123);

   palindrome(127681);

   palindrome(12987983);

   return 0;}

c-cong

Trong bài tập này, ICANTECH cũng sử dụng vòng lặp While với một thủ thuật toán học tương tự như trong bài tập 2 (xem dòng code số 5 và số 6). Điều kiện để vòng While thực thi cũng giống như trong bài tập 2. Các số cụ thể đưa vào để minh họa các bạn có thể xem kỹ trong hình bên trên.

4.4. Bài tập 4

Bên dưới là một chương trình sử dụng vòng While để đếm số các chữ số của số 123456789. Các bạn hãy tự phân tích bài tập này nhé.

#include <bits/stdc++.h>

using namespace std;

int digits(int num)

{int count = 0;

    while (num != 0)

    { num = num / 10; 

        ++count; }

    return count;} 

int main()

{int num = 123456789;

    cout << "Tổng các chữ số trong số 123456789 là: " <<digits(num);

    return 0;}

c-cong

5. Lời Kết

Như vậy trong bài viết này, ICANTECH đã giúp các bạn tìm hiểu về vòng lặp While trong C++. Tùy thuộc vào yêu cầu công việc hay bài toán cần giải quyết mà các bạn hãy sử dụng vòng lặp While một cách linh hoạt. Chúc các bạn thành công!

Nếu bạn đang quan tâm đến học lập trình thì hãy tham khảo ngay các khóa học lập trình tại ICANTECH nhé!

Nguồn ảnh: ICANTECH.

Share
Tags
Lập trình C++

Bài tương tự