LATEST

Vòng lặp do...while trong C / C++

Trong bài viết này, codehow sẽ giới thiệu đến các bạn vòng lặp do...while trong C / C++. Đây là một loại vòng lặp đặc biệt hơn so với vòng lặp while và for.

Vòng lặp do...while được sử dụng trong trường hợp bạn muốn thực hiện một hành động gì đó trước rồi mới kiểm tra điều kiện. Nếu nó thõa điều khiện thì tiếp tục lặp, ngược lại thì thoát khỏi vòng lặp.

Ví dụ khi chúng ta tạo một cái menu nhiều option cho người dùng chọn. Nếu người dùng chọn đúng option thì thoát khỏi vòng lặp, nếu chọn sai thì tiếp tục hiển thị menu cho người dùng chọn lại.

Cấu trúc vòng lặp do...while trong C / C++

Vòng lặp do...while về cơ bản cũng tương tự như vòng lặp while và for đó là được sử dụng để lặp lại một đoạn code nào đó.

Tuy nhiên trong vòng lặp do...while nó sẽ thực hiện bên trong vòng lặp trước rồi mới kiểm tra điều kiện. Điều này có nghĩa là nó thực hiện các câu lệnh bên trong vòng lặp ít nhất một lần.

Khác với vòng lặp while, for có thể sẽ không thực hiện lần nào bên trong vòng lặp. Hãy cùng xem cú pháp của nó để hiểu rõ hơn nhé.

do {
   statement(s);
} 
while( condition )

Trong đó:

  • statement: đây là các câu lệnh bên trong vòng lặp, nó sẽ được thực hiện đầu tiên khi bắt đầu chạy vòng lặp.
  • condition: đây là điều kiện để vòng lặp tiếp tục được lặp. Nếu không thỏa điều kiện thì vòng lặp sẽ kết thúc.

Ví dụ: mình sẽ thực hiện một chương trình in ra các số lẻ từ 1 đến n (n do người dùng nhập).

#include <iostream>
using namespace std;
int main() {
  int number;
  cout<<"Nhap vao so n: ";
  cin>>number;
  cout<<"Cac so le tu 1 den n la: ";
  while (number >= 0){
    if(number % 2 == 1){
      cout<<number<<"\t";
    }
    number--;
  }

  cout<<"\n----------------------------\n";
  cout<<"chuong trinh nay duoc dang tai codehow.net";
  return 0;
}

Kết quả:

bai13 01 png

Sơ đồ hoạt động của vòng lặp do...while trong C / C++:

bai13 02 png

Đối với vòng lặp do...while cũng có vòng lặp lồng nhau và vòng lặp vô hạn. Tuy nhiên nó khá giống với vòng lặp while nên mình sẽ không nhắc lại ở đây. Các bạn có thể xem lại tại đây nhé!

Ví dụ sử dụng vòng lặp do...while trong C / C++

Trong phần này mình sẽ thực hiện hai ví dụ sử dụng vòng lặp do...while bằng hai ngôn ngữ khác nhau là C / C++.

Ví dụ 1: Tạo chương trình bằng ngôn ngữ C dùng để đăng nhập, yêu cầu người dùng nhập vào ID và Password. Nếu đùng thì thông báo thành công, nếu sai thì bắt đăng nhập lại.

#include <stdio.h>
const char ID[] = "admin";
const char Pass[] = "codehow.net";
int main(void) {
  char id[] = "";
  char pass[] = "";
	do 
	{
		printf("ID: ");
		scanf("%s", ID);
    printf("Pass: ");
		scanf("%s", Pass);
		
	} while (strcmp(ID,id) != 0|| strcmp(Pass,pass) != 0);

	printf("Dang nhap thanh cong !!!");
	// do something

	return 0;
}

Kết quả:

bai13 03 png

Ví dụ 2: Tạo một chương trình bằng ngôn ngữ C++, hiển thị menu các option cho người dùng chọn. Thông báo người dùng đã chọn option nào ra màn hình.

#include <iostream>
using namespace std;

int main() {
 int selection;
	do
	{
		cout << "------------Menu------------- \n";
		cout << "1) Rút tiền\n";
		cout << "2) Chuyển tiền\n";
		cout << "3) Nạp tiền\n";
		cout << "4) Kiểm tra tài khoản\n";
		cout << "Lựa chọn của bạn là: ";
		cin >> selection;
	} while (selection < 1 || selection > 4);

	// do something with selection here
	// such as a switch statement

	cout << "Bạn đã lựa chọn option #" << selection << "\n";
  cout<<"\n----------------------------\n";
  cout<<"Chương trình này được đăng tại codehow.net";
  return 0;
}

Kết quả:

bai13 04 png

Lời kết

Như vậy là chúng ta đã cùng nhai tìm hiểu về vòng lặp do...while trong C / C++. Đây cũng là loại vòng lặp cuối cùng mà mình muốn giới thiệu đến các bạn. Ở bài tiếp theo mình sẽ giới thiệu đến các bạn

Cùng chuyên mục:

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán tính lũy thừa trong C / C++

Thuật toán tính lũy thừa trong C / C++

Top