LATEST

Vòng lặp for 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 for trong C / C++. Đây là kiến thức cơ bản khi bắt đầu học bất kỳ ngôn ngữ lập trình nào.

Vòng lặp for được sử dụng trong trường hợp chúng ta muốn lặp đi lặp lại một hành động nào đó. Có thể là biết trước số lần lặp hoặc có thể là lặp vô hạn.

Ví dụ: Buổi sáng mọc trời mọc và buổi chiều tối thì mặt trời lặn, hành động này được lặp đi lặp lại vô hạn.

Ví dụ: Cô giáo bắt chúng ta đọc bài ba lần, thì khi đó hành động đọc bài được lặp đi lặp lại ba lần.

Trên đây là ví dụ thực tế ngoài đời sống sử dụng vòng lặp, vậy trong ngôn ngữ C / C++ vòng lặp được sử dụng như thế nào thì các bạn cùng mình tìm hiểu ngay thôi nhé.

Cấu trúc vòng lặp for trong C / C++

Vòng lặp for là một cấu trúc lặp được sử dụng nhiều nhất trong C / C++, hầu hết trong các chương trình xử lý đều dùng vòng lặp for.

Với vòng lặp for chúng ta có thể lặp với số lần vô hạn hoặc có thể lặp với số lần biết trước. Tuy nhiên các lập trình viên thường sử dụng vòng lặp for với số lần lặp biết trước.

Cú pháp vòng lặp for:

for (init-statement; condition-expression; end-expression)
{
    statements;
}

Trong đó:

  • init-statement: Trong phần này ta định nghĩa và khởi tạo biến và được thực thi một lần duy nhất trong vòng lặp.
  • condition-expression: Trong phần này bao gồm các biểu thức điều kiện, nếu biểu thức điều kiện đúng thì các câu lệnh trong vòng lặp được thực hiện.
  • end-expression: Phần này được thực thi mỗi cuối vòng lặp. Sau khi vòng lặp đầu tiên được thi, phần này sẽ tăng hoặc giảm các giá trị trong vòng lặp và quay lại thực hiện vòng lặp thứ hai.

Ví dụ: Mình sẽ thực hiện chương trình hiển thị từ số 0 đến số 9. Mình sẽ đưa ra hai chương trình có sử dụng vòng lặp for và không sử dụng vòng lặp for để các bạn có thể so sánh.

Không sử dụng vòng lặp for:

#include <iostream>
using namespace std;
 
int main()
{
    cout<<0<<endl;
    cout<<1<<endl;
    cout<<2<<endl;
    cout<<3<<endl;
    cout<<4<<endl;
    cout<<5<<endl;
    cout<<6<<endl;
    cout<<7<<endl;
    cout<<8<<endl;
    cout<<9<<endl;
  
    cout<<"\n--------------------------\n";
    cout<<"Chuong trinh nay duoc dang tai codehow.net";
    return 0;
}

Sử dụng vòng lặp for:

#include <iostream>
using namespace std;
 
int main()
{
    for(int i = 0; i <= 9; i++){
      cout<<i<<endl;
    }
  
    cout<<"\n--------------------------\n";
    cout<<"Chuong trinh nay duoc dang tai codehow.net";
    return 0;
}

Kết quả: Với hai chương trình trên thì có chung một kết quả dưới đây.

bai11 01 png

Như các bạn thấy thì việc sử dụng vòng lặp for gọn hơn rất nhiều so với việc hiển thị bình thường.

Vòng lặp for lồng nhau trong C / C++

Khi trong vòng lặp for này có một hoặc nhiều vòng lặp for khác thì được gọi là các vòng lặp for lồng nhau.

Trong trường hợp chúng ta muốn lặp lại hành động này dựa vào hành động kia mới sử dụng vòng for lồng nhau. Còn bình thường chúng ta không nên sử dụng bởi nó làm chậm chương trình vì lặp quá nhiều lần.

Hãy cùng xem ví dụ dưới đây để hiểu rõ hơn nhé.

#include <iostream>
using namespace std;
 
int main()
{
    for(int i = 1; i <= 3; i++){
      for(int j = 1;j <= 3; j++){
        cout<<"i = "<< i <<", j = "<< j<<endl;
      }
    }
  
    cout<<"\n--------------------------\n";
    cout<<"Chuong trinh nay duoc dang tai codehow.net";
    return 0;
}

Kết quả:

bai11 02 png

Vòng lặp for vô hạn trong C / C++

Vòng lặp for vô hạn nghĩa là hành động đó sẽ được lặp đi lặp lại đến khi chúng ta tắt chương trình. Nó không có điều kiện dừng lại hoặc điều kiện đó luôn đúng khiến nó lặp vô hạn.

Mình sẽ đưa ra hai ví dụ với hai trường hợp khác nhau để các bạn có thể so sánh. Cụ thể là một chương trình sẽ thực hiện vòng lặp for không có điều kiện dừng lại và một chương trình với điều kiện luôn đúng.

Ví dụ 1:

#include <iostream>
using namespace std;
 
int main()
{
    for(;;){
      cout<<"Vong lap vo han.";
    }
  
    cout<<"\n--------------------------\n";
    cout<<"Chuong trinh nay duoc dang tai codehow.net";
    return 0;
}

Ví dụ 2:

#include <iostream>
using namespace std;
 
int main()
{
    for(int i = 5;i >= 0; i++){
      cout<<"Vong lap vo han.";
    }
  
    cout<<"\n--------------------------\n";
    cout<<"Chuong trinh nay duoc dang tai codehow.net";
    return 0;
}

Kết quả:

bai11 03 png

Vòng lặp for bị khuyết các tham số trong C / C++

Trong vòng lặp for cho phép chúng ta để trống các phần trong vòng lặp, tùy vào bài toán mà chúng ta có thể bỏ trống 1, 2 hoặc cả 3 luôn nhé.

Hay cùng xem ví dụ dưới đây, mình chia ra từng trường hợp khuyết các phần để các bạn có thể so sánh.

#include <iostream>  
using namespace std; 
  
int main() { 
    int i = 1;
    cout << "Vong lap for thieu tham so thu nhat: " << endl; 
    for(;i<=3;i++){      
       cout << "Gia tri bien i = " << i << "\n";      
    } 
     
    cout << "Vong lap for thieu tham so thu ba: " << endl; 
    for(int j = 1;j <= 3;) {      
        cout << "Gia tri bien j = " << j << "\n"; 
        j++;
    }
     
    cout << "Vong lap for thieu tham so thu nhat va thu 3: " << endl; 
    int z = 1;
    for(;z <= 3;) {      
        cout << "Gia tri bien z = " << z << "\n";
        z++;
    } 

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

Kết quả:

bai11 04 png

Vòng lặp for với nhiều thành phần

Trái với việc vòng lặp for có thể bị khuyết các thành phần, thì vòng lặp for cũng cho phép chúng ta khai báo khởi tạo nhiều thành phần nữa nhé.

Hãy cùng xem ví dụ dưới đây để hiểu rõ hơn.

#include <iostream>  
using namespace std; 
  
int main() { 
  for (int i = 2, j = 3; i + j < 20; i++, j++) 
	{
		cout << i << " + " << j << " = " << (i + j) << '\n';
	}

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

Kết quả:

bai11 05 png

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

Trong bài viết này mình sẽ thực hiện hai ví dụ sử dụng vòng lặp for bằng hai ngôn ngữ khác nhau là C và C++. Các bạn cùng theo dõi nhé.

Ví dụ 1: Hiển thị bảng cửu chương bằng ngôn ngữ C.

#include <stdio.h>

int main () {
  int a;
  printf("Nhap vao ban cuu chuong ban muon hien thi: ");
  scanf("%d", &a);

  printf("Ban cuu chuong %d\n", a);
  for(int i = 1; i <= 9; i++){
    printf("%d x %d = %d\n",a,i,a * i);
  }
  printf("\n------------------------------\n");
	printf("Chuong trinh nay duoc dang tai Codehow.net");
   return 0;
}

Kết quả:

bai11 07 png

Ví dụ 2: Hiển thị các phần tử trong mảng bằng ngôn ngữ C++.

#include <iostream>  
using namespace std; 
  
int main() { 
  int numbers[6] = {1, 4, 5, 2, 9, 20};
  cout<<"Cac phan tu trong mang la: ";
  for (int i = 0; i < 6; i++){
    cout << numbers[i] << " ";     
  }

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

Kết quả:

bai11 06 png

Lời kết

Như vậy là chúng ta đã cùng nhau tìm hiểu về vòng lặp for trong C / C++. Vòng lặp for được sử dụng rất nhiều khi lập trình, vì vậy các bạn hãy luyện tập thật nhiều để sử dụng nó một cách thành thạo nhé. Ở bài tiếp theo mình sẽ giới thiệu đến các bạn vòng lặp while trong C / C++, hay chú ý theo dõi nhé.

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