Continue trong C và cách bỏ qua vòng lặp | Laptrinhcanban.com

HOME › >>

Continue trong C và cách bỏ qua vòng lặp

Hướng dẫn cách sử dụng lệnh continue trong C. Bạn sẽ học được cách dùng lệnh continue để bỏ qua lượt lặp hiện tại của vòng lặp trong C sau bài học này.

Lệnh continue trong C

Lệnh continue trong C được sử dụng để bỏ qua lượt lặp hiện tại và bắt đầu lượt lặp kế tiếp của vòng lặp trong C . Các vòng lặp trong C như vòng lặp while hoặc vòng lặp for sẽ bỏ qua lượt lặp hiện tại khi lệnh continue được thực hiện. Tất cả các xử lý còn lại đằng sau lệnh continue trong lượt lặp hiện tại đều bị bỏ qua và chương trình bắt đầu lượt lặp kế tiếp.

Cú pháp của lệnh continue trong C như sau:

continue;

Câu lệnh continue trong C được sử dụng kết hợp với câu lệnh if trong C và được miêu tả trong khối lệnh while hoặc khối lệnh for giống như sau đây::

for (biểu-thức-khởi-tạo ; biểu-thức-điều-kiện ; biểu-thức-thay-đổi ) {
    Câu lệnh 1 trong khối for ;
    Câu lệnh 2 trong khối for ;
    if (biểu-thức-điều-kiện-if){
        continue;
        }
    Câu lệnh 3 trong khối for ;
}

Để hiểu rõ hơn, chúng ta sẽ sử dụng lại ví dụ trong bài For trong C và cách xử lý chi tiết. Chúng ta có một vòng lặp for để in ra màn hình 3 lần dòng hello như sau:

#include <stdio.h>
int main(void){
for (int i = 1; i < 4; i++){
printf("hello %d\n", i);
}
printf("bye");
}


//> hello 1
//> hello 2
//> hello 3
//> bye

Chúng ta sẽ dùng lệnh continue để bỏ qua và không in dòng chữ hello ở vòng lặp thứ 2 như sau:

#include <stdio.h>
int main(void){
for (int i = 1; i < 4; i++){
if (i == 2){
printf("CONTINUE!\n");
continue;
}
printf("hello %d\n", i);
}
printf("bye");
}

Khi đó vòng lặp for continue trong C sẽ chạy như sau:
Lượt lặp đầu tiên:

  1. Khai báo biến i và gán giá trị ban đầu i = 1
  2. Biểu thức điều kiện For (i < 4) là TRUE nên thực thi vòng lặp
  3. Biểu thức điều kiện IF i == 2 là là False nên khối lệnh if (chứa lệnh continue) được bỏ qua
  4. Chạy lệnh printf("hello %d\n", i);
  5. Biểu thức thay đổi tăng giá trị i lên 1 đơn vị thành i=2

Lượt lặp thứ 2:

  1. Biểu thức điều kiện For (i < 4) là TRUE nên thực thi vòng lặp
  2. Biểu thức điều kiện IF i == 2 là True nên các lệnh trong khối if (bao gồm cả lệnh continue) được thực thi. Do lệnh continue được chạy nên các lệnh còn lại của vòng lặp đằng sau continue cũng sẽ được bỏ qua.
  3. Biểu thức thay đổi tăng giá trị i lên 1 đơn vị thành i=3

Lượt lặp thứ 3:

  1. Biểu thức điều kiện For (i < 4) là TRUE nên thực thi vòng lặp
  2. Biểu thức điều kiện IF i == 2 là False nên khối lệnh if (chứa lệnh continue) được bỏ qua
  3. Chạy lệnh printf("hello %d\n", i);
  4. Biểu thức thay đổi tăng giá trị i lên 1 đơn vị thành i=4

Lượt lặp thứ 4:

  1. Biểu thức điều kiện i < 4 là FALSE nên thoát khỏi vòng lặp

Ngoài vòng lặp:

  1. Chạy lệnh tiếp theo printf("bye"); sau khi thoát vòng lặp.

Kết quả, vòng lặp for ở trên sẽ in ra màn hình console như sau:

hello 1
CONTINUE!
hello 3
bye

Chúng ta có thể khái quát xử lý bằng sơ đồ khối của lệnh continue trong C khi sử dụng trong vòng lặp for như sau:

Lệnh continue trong C

Sử dụng lệnh continue bỏ qua lượt lặp hiện tại trong vòng lặp for C

Chúng ta sử dụng lệnh continue để bỏ qua lượt lặp hiện tại trong vòng lặp for C và thực hiện các lượt lặp kế tiếp. Lệnh while sẽ bỏ qua lượt lặp while hiện tại khi lệnh continue được thực hiện, tất cả các xử lý sau lệnh continue đều bị bỏ qua và chương trình bắt đầu một lượt lặp mới.

Hãy xem ví dụ về vòng lặp for để tính tổng các số từ 1 đến 10. Nếu không sử dụng lệnh continue thì chương trình sẽ chạy như sau:

#include <stdio.h>
int main(void){
int sum = 0;
for (int i = 1; i <=10; i++){
printf("%d\n",i);
sum += i ;
}
printf("SUM=%d",sum);

}

//> 1
//> 2
//> 3
//> 4
//> 5
//> 6
//> 7
//> 8
//> 9
//> 10
//> SUM 55

Tuy nhiên khi chúng ta sử dụng thêm lệnh continue và muốn bỏ qua vòng lặp khi biến num có giá trị bằng 2, chương trình sẽ không in ra giá trị num bằng 2 cũng như không tính num vào tổng chung như sau:

#include <stdio.h>
int main(void){
int sum = 0;
for (int i = 1; i <=10; i++){
if (i == 2){
printf("CONTINUE!\n");
continue;
}
printf("%d\n",i);
sum += i ;
}
printf("SUM=%d",sum);

}

//> 1
//> CONTINUE!
//> 3
//> 4
//> 5
//> 6
//> 7
//> 8
//> 9
//> 10
//> SUM 53

Bạn có thể thấy chúng ta đã bỏ qua vòng lặp for trong C bằng lệnh continue tại vị trí num ==2 rồi phải không nào?

Về cách sử dụng vòng lặp for, hãy xem chi tiết tại bài viết Vòng lặp for trong C

Sử dụng lệnh continue để bỏ qua lượt lặp hiện tại trong vòng lặp while C

Chúng ta sử dụng lệnh continue để bỏ qua lượt lặp hiện tại trong vòng lặp while C và thực hiện các lượt lặp kế tiếp. Lệnh while sẽ bỏ qua lượt lặp while hiện tại khi lệnh continue được thực hiện, tất cả các xử lý sau lệnh continue đều bị bỏ qua và chương trình bắt đầu một lượt lặp mới.

Hãy xem ví dụ về vòng lặp while để in ra các số từ 1 đến 10. Nếu không sử dụng lệnh continue thì chương trình sẽ chạy như sau:

#include <stdio.h>
int main(void){
int num = 1;

while (num <= 10){
printf("%d\n",num);
num++;
}

}

//> 1
//> 2
//> 3
//> 4
//> 5
//> 6
//> 7
//> 8
//> 9
//> 10

Tuy nhiên khi chúng ta sử dụng thêm lệnh continue và muốn bỏ qua vòng lặp khi biến num có giá trị bằng 2, chương trình sẽ không in ra giá trị num bằng 2 như sau:

#include <stdio.h>
int main(void){
int num = 1;

while (num <= 10){
if (num == 2){
printf("CONTINUE!\n");
num++;
continue;
}
printf("%d\n",num);
num++;
}

}

//> 1
//> CONTINUE!
//> 3
//> 4
//> 5
//> 6
//> 7
//> 8
//> 9
//> 10

Bạn có thể thấy chúng ta đã bỏ qua vòng lặp while trong C bằng lệnh continue tại vị trí num ==2 rồi phải không nào?

Về cách sử dụng vòng lặp while, hãy xem chi tiết tại bài viết Vòng lặp while trong C

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách sử dụng lệnh continue trong C rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C trong các bài học tiếp theo.

URL Link

https://laptrinhcanban.com/c/lap-trinh-c-co-ban/vong-lap-trong-c/lenh-continue-trong-c/

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME  › >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.