LATEST

Lệnh continue trong C / C++

Trong bài viết này, codehow sẽ giới thiệu đến các bạn lệnh continue trong C / C++. Tương tự như lệnh break trong C / C++, lệnh continue cũng được sử dụng bên trong các vòng lặp, vậy nó được dùng để làm gì? chúng ta cùng tìm hiểu thôi nhé.

Lệnh continue thường được dùng bên trong các vòng lặp nhằm mục đích chuyển vòng lặp đến lần lặp tiếp theo. Khác với lệnh break sẽ thoát khỏi vòng lặp, lệnh continue không thoát khỏi vòng lặp mà chỉ chuyển đến lần lặp tiếp theo mà thôi.

Bây giờ hãy cùng mình tìm hiểu về cú pháp, cách sử dụng nó bên trong các vòng lặp thông qua các ví dụ cụ thể nhé.

Cấu trúc lệnh continue trong C / C++

Lệnh continue trong C / C++ được sử dụng để chuyển vòng lặp tới lần lặp tiếp theo.

Hay hiểu đơn giản hơn, khi chương trình gặp phải lệnh này, ngay lập tức chuyển đến lần lặp tiếp theo của vòng lặp mà không quan tâm đến các câu lệnh ngay phía sau nó.

Hãy cùng xem cú pháp của nó nhé.

continue;

Lưu đồ hoạt động:

bai15 01 png

Ví dụ: Mình sẽ viết một chương trình đơn giản, hiển thị các số chẵn từ 1 đến 10 có sử dụng lệnh continue trong C / C++.

Chương trình C:

#include <stdio.h>

int main(void) {
  printf("Các số chẵn nhỏ hơn 10 là: \n");
   for (int i = 1; i < 10; i++) {
       if(i%2 != 0) {
           continue;
       }
       printf("  i = %d\n",i);
        
   }

  printf("\n-----------------------------------\n");
  printf("Chương trình này được đăng tại codehow.net");
  return 0;
}

Chương trình C++:

#include <iostream>  
using namespace std;  
int main()  
{  
   cout << "Các số chẵn nhỏ hơn 10 là: " << endl;
   for (int i = 1; i < 10; i++) {
       if(i%2 != 0) {
           continue;
       }
       cout << "  i = " << i << endl;
        
   }

  cout<<"\n-----------------------------------\n";
  cout<<"Chương trình này được đăng tại codehow.net";
  return 0;
}

Kết quả:

bai15 02 png

Lệnh continue trong C / C++ có sử dụng được trong if, switch...case không?

Trong ngôn ngữ C / C++ thì lệnh break có thể sử dụng trong các vòng lặp cũng như các câu lệnh if, switch...case. Vậy lệnh continue có sử dụng được trong các câu lệnh if, switch...case hay không? các bạn cùng mình xem qua hai ví dụ dưới đây nhé.

Giả sử mình sử dụng lệnh continue trong câu lệnh if và không nằm trong vòng lặp nào cả, kết quả sẽ như thế nào đây?

#include <iostream>  
using namespace std;  
int main()  
{  
   int i = 10;
   if(true) {
       if(i%2 == 0) {
           continue;
       }
       cout << "Câu lệnh bên trong if";
   }

  cout<<"\n-----------------------------------\n";
  cout<<"Chương trình này được đăng tại codehow.net";
  return 0;
}

Kết quả:

bai15 03 png

Nếu sử dụng bên trong switch...case kết quả sẽ như thế nào?

#include <iostream>  
using namespace std;  
int main()  
{  
   int i = 3;
   switch(i) {
       case 1:
            cout << "Giá trị i: " << i << endl;
            continue;
       case 2:
            cout << "Giá trị i: " << i << endl;
            break;
        case 3:
            cout << "Giá trị i: " << i << endl;
            break;
        default:
            cout << "Giá trị không hợp lệ!" << endl;
        
   }

  cout<<"\n-----------------------------------\n";
  cout<<"Chương trình này được đăng tại codehow.net";
  return 0;
}

Kết quả:

bai15 03 png

Như các bạn đã thấy thì cả hai kết quả khì sử dụng lệnh continue trong C / C++ bên trong if và switch...case đều cả ra cùng một lỗi đó là "continue statement not in loop statement". Tạm hiểu đây là lỗi lệnh continue không nằm bên trong vòng lặp.

Điều này có nghĩa là lệnh continue trong C / C++ phải được sử dụng bên trong vòng lặp. Nếu sử dụng bên ngoài sẽ bị lỗi biên dịch ngay lập tức. Điều này khác với lệnh break trong C / C++.

Lệnh continue C / C++ trong các vòng lặp lồng nhau

Lệnh continue trong C / C++ sẽ chuyển đến vòng lặp tiếp theo của vòng lặp, vậy nếu có hai hoặc nhiều vòng lặp lồng nhau, lệnh continue sẽ hoạt đông như thế nào?

Để trả lời cho câu hỏi này, các bạn hãy cùng mình xem qua chương trình dưới đây, sau đó mình sẽ giải thích nó hoạt động ra sao.

#include <iostream>  
using namespace std;  
int main()  
{  
   for(int i=2;i<=4;i++){
        cout << "Vòng lặp thứ i = " << i << endl;
        for(int j=1;j<=10;j++){        
            if(i*j % 2 == 0){        
                continue;        
            }        
            cout << "  " << i << " x " << j << " = " << j*i << endl;                  
        }        
    }          

  cout<<"\n-----------------------------------\n";
  cout<<"Chương trình này được đăng tại codehow.net";
  return 0;
}

Kết quả:

bai15 04 png

Ở ví dụ trên, mình có hai vòng lặp lồng nhau. Vòng lặp thứ nhất chạy từ i = 2 đến i <= 4 và vòng lặp thứ hai chạy từ j = 1 đến j <= 10.

Với lần lặp đầu tiên, vì i = 2 nên khi i * j luôn luôn là số chẵn, nghĩa là i * j luôn luôn chia hết cho 2. Vậy nên lệnh continue trong vòng lặp này không được gọi.

Với lần lặp thứ hai, khi này i = 3 và j tăng từ 1 đến 10. Ta thấy i * j sẽ ra kết quả số lẻ nếu như j = 1, 3, 5, 7, 9. Điều này có nghĩa lệnh continue sẽ được gọi khi j bằng một trong các số này.

Kết luận: Nếu lệnh continue được sử dụng trong các vòng lặp lồng nhau, thì nó sẽ chuyển đến lần lặp tiếp theo của vòng lặp trong cùng nhất.

Ví dụ sử dụng lệnh continue trong C / C++

Trong phần này, mình sẽ đưa ra hai ví dụ sử dụng lệnh continue trong C / C++ bằng hai ngôn ngữ khác nhau là C và C++. Để có thể hiểu được cách dùng lệnh continue, thì việc luyện tập với các ví dụ là phương pháp tốt nhất.

Ví dụ 1: In ra màn hình tam giác vuông bằng các hình ngôi sao sử dụng lệnh continue trong ngôn ngữ C++. Chiều cao do người dùng nhập từ bàn phím.

#include <iostream>  
using namespace std;  
int main()  
{  
    int h;
    int star = 0; 
    cout<<"Nhập vào chiều cao của tam giác: ";
    cin>>h;
    cout<<endl;
    for (int dong = 1; dong <= h; ) 
    { 
        if (star < dong) 
        { 
           cout << "* "; 
           star++;
           continue; 
        } 
   
        if (star == dong) 
        { 
           star = 0; 
           dong++;
           cout << endl; 
        } 
    }         
  
    cout<<"\n-----------------------------------\n";
    cout<<"Chương trình này được đăng tại codehow.net";
    return 0;
}

Kết quả:

bai15 05 png

Ví dụ 2: Viết chương trình yêu cầu người dùng nhập vào một số nguyên, hiển thị các số lẻ từ 1 đến số mà người dùng nhập sử dụng lệnh continue trong ngôn ngữ C.

#include <stdio.h>

int main(void) {
  int n;
  printf("Nhập vào một số nguyên: ");
  scanf("%d", &n);
  printf("Các số lẻ nhỏ hơn %d là: \n", n);
   for (int i = 1; i < n; i++) {
       if(i%2 == 0) {
           continue;
       }
       printf("  i = %d\n",i);
        
   }

  printf("\n-----------------------------------\n");
  printf("Chương trình này được đăng tại codehow.net");
  return 0;
}

Kết quả:

bai15 06 png

Lời kết

Thông qua bài viết này, chúng ta đã biết được lệnh continue trong C / C++ được sử dụng để làm gì? Nó được sử dụng để chuyển đến lần lặp tiếp theo trong vòng lặp.

Lệnh continue trong C / C++ chỉ sử dụng trong các vòng lặp, nếu sử dụng nó bên ngoài vòng lặp sẽ bị lỗi ngay lập tức. Để có thể hiểu rõ hơn về nó, các bạn hãy luyện tập thật nhiều nhé.

Ở bài viết tiếp theo, mình sẽ giới thiệu đến các bạn lệnh goto trong C / C++, khi đó bạn có thể so sánh giữa lệnh continue và lệnh goto có gì giống và khác nhau.

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