So sánh lập trình vong lap vo han năm 2024

So sánh lập trình vong lap vo han năm 2024

Đã đăng vào thg 8 12, 2022 9:32 SA 2 phút đọc

1. Vòng lặp while.

1.1 Khái niệm

  • Vòng lặp while được dùng để thực hiện một lệnh hay một khối lệnh với số lần lặp chưa xác định trước.
  • Với vòng lặp while thì điều kiện lặp được kiểm tra trước khi thực hiện thân của vòng lặp.

1.2 Cú pháp

while (điều_kiện_lặp) {
    // Các lệnh
}

  • điều_kiện_lặp: là điều kiện để xác định điều kiện lặp. Có giá trị là true hoặc false.
  • Các lệnh nằm trong cặp dấu {} là thân của vòng lặp.
  • Lưu ý:
    • Vòng lặp while kiểm tra điều kiện trước rồi mới thực hiện các câu lệnh trong thân vòng lặp nên nếu ngay từ đầu điều_kiện_lặp đã có giá trị false thì vòng lặp while sẽ không được thực hiện bất cứ lần nào.
    • Nếu điều_kiện_lặp có giá trị là true và không thay đổi thì vòng lặp while sẽ trở thành vòng lặp vô hạn.
    • Để dừng vòng lặp while thì bên trong while cần có lệnh làm thay đổi giá trị của điều_kiện_lặp thành false hoặc sử dụng lệnh break.

So sánh lập trình vong lap vo han năm 2024

2. Vòng lặp do - while

2.1 Khái niệm

  • Cũng giống với vòng lặp do - while được dùng để thực hiện một lệnh hay một khối lệnh với số lần lặp chưa xác định trước.
  • Nhưng khác với while, do - while chỉ kiểm tra điều kiện lặp sau khi thân vòng lặp đã được thực hiện một lần.

2.2 Cú pháp

do {
  // Các lệnh
} while (điều_kiện_lặp);

  • điều_kiện_lặp: là điều kiện để xác định điều kiện lặp. Có giá trị là true hoặc false.
  • Các lệnh nằm trong cặp dấu {} là thân của vòng lặp.
  • Lưu ý: khác với while, vòng lặp do - while thực hiện các câu lệnh trong thân vòng lặp trước rồi mới kiểm tra điều kiện nên các câu lệnh nằm trong thân vòng lặp sẽ được thực hiện ít nhất là một lần. Sau đó, tùy theo kết quả của biểu thức điều kiện, chương trình sẽ tiếp tục thực hiện hoặc thoát ra khỏi vòng lặp.
  • Ví dụ: như ví dụ dưới đây, mặc dù ngay từ đầu điều kiện đã sai nhưng lệnh in ra màn hình vẫn được thực hiện 1 lần.

So sánh lập trình vong lap vo han năm 2024

All rights reserved

Vòng lặp vô hạn là chuỗi các câu lệnh được thực hiện lặp đi lặp lại không có điểm dừng. Nguyên nhân có thể là:

  • Vòng lặp chưa có điều kết thúc vòng lặp
  • Vòng lặp có điều điều kiện để kết thúc vòng lặp nhưng điều kiện này không bao giờ được đáp ứng.
  • Hoặc có thể một logic nào đó dẫn đến lặp vô hạn (ví dụ: lệnh goto có thể tạo ra vòng lặp)
  • Chương trình bị dính vòng lặp vô hạn, chương trình có thể bị gây treo PC hoặc bị crash (nếu trong vòng lặp khai bao biến hoặc cấp phát vùng nhớ mà không giải phóng vùng nhớ).
  • Do vậy, cần tránh để xảy ra vòng lặp vô hạn trong chương trình.
  • Trong một số trường hợp (requirement), lập trình viên không xác định chính xác được số lần lặp để xử lí 1 logic nào đó. Lúc này, lập trình viên phải sử dụng khai báo vòng lặp vô hạn for(), while(), do while().

Các dạng của vòng lặp vô hạn trong ngôn ngữ C

Vòng lặp vô hạn for

Khai báo:

for ( ; ; ) {

// place code here  
} Ví dụ: Nhập và in ra chuỗi đã nhập. Việc nhập kết thúc khi nhập “quit”.

include <stdio.h>

include <string.h>

include <conio.h>

void main() {

char s[100];  
for ( ; ; )  
{  
    printf("\nNhap chuoi: ");  
    gets(s);  
    if(strcmp(s, "quit") == 0)  
    {  
        break;  
    }  
    printf("\ns = %s", s);  
}  
getch();  
}
So sánh lập trình vong lap vo han năm 2024
Vòng lặp vô hạn for

Vòng lặp vô hạn while

Khai báo:

while(1) {

//pleace code here  
} Ví dụ: Nhập số nguyên lớn hơn 0. Nếu nhập số <= 0, yêu cầu nhập lại.

include <stdio.h>

include <string.h>

include <conio.h>

void main() {

int n;  
while (1)  
{  
    printf("\nNhap n: ");  
    scanf("%d", &n);  
    if(n > 0)  
    {  
        break;  
    }  
}  
printf("\nn = %d", n);  
getch();  
}
So sánh lập trình vong lap vo han năm 2024
Vòng lặp vô hạn while

Vòng lặp vô hạn do while

Khai báo:

do {

//place code here  
} while (1); Ví dụ: Nhập số nguyên lớn hơn 0. Nếu nhập số <= 0, yêu cầu nhập lại.

include <stdio.h>

include <string.h>

include <conio.h>

void main() {

int n;  
do  
{  
    printf("\nNhap n: ");  
    scanf("%d", &n);  
    if(n > 0)  
    {  
        break;  
    }  
}  
while(1);  
printf("\nn = %d", n);  
getch();  
}
So sánh lập trình vong lap vo han năm 2024
Vòng lặp vô hạn do while

  • C/C++ Interview
  • vong lap vo han