Lập trình máy tính - Vòng lặp
Hãy xem xét một tình huống khi bạn muốn in Hello, World!năm lần. Đây là một chương trình C đơn giản để làm điều tương tự -
#include <stdio.h>
int main() {
printf( "Hello, World!\n");
printf( "Hello, World!\n");
printf( "Hello, World!\n");
printf( "Hello, World!\n");
printf( "Hello, World!\n");
}
Khi chương trình trên được thực thi, nó tạo ra kết quả sau:
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Nó rất đơn giản, nhưng một lần nữa, hãy xem xét một tình huống khác khi bạn muốn viết Hello, World!một ngàn lần. Chúng ta chắc chắn không thể viết câu lệnh printf () một nghìn lần. Hầu như tất cả các ngôn ngữ lập trình đều cung cấp một khái niệm được gọi làloop, giúp thực hiện một hoặc nhiều câu lệnh với số lần mong muốn. Tất cả các ngôn ngữ lập trình cấp cao đều cung cấp nhiều dạng vòng lặp khác nhau, có thể được sử dụng để thực hiện lặp lại một hoặc nhiều câu lệnh.
Hãy viết chương trình C trên với sự trợ giúp của while loop và sau đó, chúng ta sẽ thảo luận về cách thức hoạt động của vòng lặp này
#include <stdio.h>
int main() {
int i = 0;
while ( i < 5 ) {
printf( "Hello, World!\n");
i = i + 1;
}
}
Khi chương trình trên được thực thi, nó tạo ra kết quả sau:
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Chương trình trên sử dụng một while loop, đang được sử dụng để thực thi một tập hợp các câu lệnh lập trình nằm trong {....}. Ở đây, trước tiên máy tính sẽ kiểm tra xem điều kiện đã cho, tức là biến "a" có nhỏ hơn 5 hay không và nếu nó thấy điều kiện là đúng, thì phần thân của vòng lặp được nhập để thực hiện các câu lệnh đã cho. Ở đây, chúng ta có hai câu lệnh sau trong thân vòng lặp:
Câu lệnh đầu tiên là hàm printf () , hàm này in ra Hello World!
Câu lệnh thứ hai là i = i + 1 , được sử dụng để tăng giá trị của biếni
Sau khi thực hiện tất cả các câu lệnh đã cho trong thân vòng lặp, máy tính quay trở lại while (i <5) và điều kiện đã cho, (i <5), được kiểm tra lại, và vòng lặp được thực thi lại nếu điều kiện đúng. Quá trình này lặp lại cho đến khi điều kiện đã cho vẫn đúng, nghĩa là biến "a" có giá trị nhỏ hơn 5.
Để kết luận, một câu lệnh lặp cho phép chúng ta thực hiện một câu lệnh hoặc một nhóm câu lệnh nhiều lần. Dưới đây là dạng chung của câu lệnh lặp trong hầu hết các ngôn ngữ lập trình -
Hướng dẫn này được thiết kế để trình bày các khái niệm cơ bản của lập trình cho những người không phải là lập trình viên, vì vậy chúng ta hãy thảo luận về hai vòng lặp quan trọng nhất có sẵn trong ngôn ngữ lập trình C. Khi bạn đã hiểu rõ về hai vòng lặp này, bạn có thể chọn hướng dẫn lập trình C hoặc một cuốn sách tham khảo và kiểm tra các vòng lặp khác có sẵn trong C và cách chúng hoạt động.
Vòng lặp trong khi
A while loop có sẵn trong ngôn ngữ lập trình C có cú pháp sau:
while ( condition ) {
/*....while loop body ....*/
}
Đoạn mã trên có thể được biểu diễn dưới dạng một sơ đồ như hình dưới đây:
Những điểm quan trọng sau đây cần được lưu ý về vòng lặp while:
Vòng lặp while bắt đầu bằng một từ khóa while Theo sau là một condition đính kèm với ( ).
Hơn nữa với câu lệnh while (), bạn sẽ có phần thân của vòng lặp được đặt trong dấu ngoặc nhọn {...}.
Phần thân của vòng lặp while có thể có một hoặc nhiều dòng mã nguồn được thực thi lặp đi lặp lại.
Nếu phần thân của vòng lặp while chỉ có một dòng, thì tùy chọn sử dụng dấu ngoặc nhọn {...}.
Vòng lặp while tiếp tục thực hiện phần thân của nó cho đến khi conditionđúng. Ngay sau khi điều kiện trở thành sai, vòng lặp while sẽ xuất hiện và tiếp tục thực thi từ câu lệnh kế tiếp ngay sau thân vòng lặp while.
Một điều kiện thường là một câu lệnh quan hệ, được đánh giá là đúng hoặc sai. Giá trị bằng 0 được coi là sai và mọi giá trị khác 0 đều hoạt động như đúng.
Do ... while Loop
Vòng lặp while kiểm tra một điều kiện nhất định trước khi nó thực thi bất kỳ câu lệnh nào được đưa ra trong phần nội dung. Lập trình C cung cấp một dạng vòng lặp khác, được gọi làdo...whilecho phép thực thi một phần thân của vòng lặp trước khi kiểm tra một điều kiện nhất định. Nó có cú pháp sau:
do {
/*....do...while loop body ....*/
}
while ( condition );
Đoạn mã trên có thể được biểu diễn dưới dạng một sơ đồ như hình dưới đây:
Nếu bạn sẽ viết ví dụ trên bằng cách sử dụng do...while vòng lặp, sau đó Hello, World sẽ tạo ra cùng một kết quả -
#include <stdio.h>
int main() {
int i = 0;
do {
printf( "Hello, World!\n");
i = i + 1;
}
while ( i < 5 );
}
Khi chương trình trên được thực thi, nó tạo ra kết quả sau:
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Tuyên bố ngắt
Khi mà breakgặp câu lệnh bên trong một vòng lặp, vòng lặp ngay lập tức kết thúc và điều khiển chương trình tiếp tục ở câu lệnh tiếp theo sau vòng lặp. Cú pháp cho mộtbreak câu lệnh trong C như sau:
break;
A break câu lệnh có thể được biểu diễn dưới dạng một sơ đồ như hình dưới đây:
Sau đây là một biến thể của chương trình trên, nhưng nó sẽ ra mắt sau khi in Hello World! chỉ ba lần -
#include <stdio.h>
int main() {
int i = 0;
do {
printf( "Hello, World!\n");
i = i + 1;
if( i == 3 ) {
break;
}
}
while ( i < 5 );
}
Khi chương trình trên được thực thi, nó tạo ra kết quả sau:
Hello, World!
Hello, World!
Hello, World!
Tuyên bố tiếp tục
Các continue câu lệnh trong ngôn ngữ lập trình C hoạt động giống như breaktuyên bố. Thay vì buộc phải chấm dứt,continuebuộc lặp lại tiếp theo của vòng lặp diễn ra, bỏ qua bất kỳ mã nào ở giữa. Cú pháp cho mộtcontinue câu lệnh trong C như sau:
continue;
A continue câu lệnh có thể được biểu diễn dưới dạng một sơ đồ như hình dưới đây:
Sau đây là một biến thể của chương trình trên, nhưng nó sẽ bỏ qua việc in khi biến có giá trị bằng 3 -
#include <stdio.h>
int main() {
int i = 0;
do {
if( i == 3 ) {
i = i + 1;
continue;
}
printf( "Hello, World!\n");
i = i + 1;
}
while ( i < 5 );
}
Khi chương trình trên được thực thi, nó tạo ra kết quả sau:
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Vòng lặp trong Java
Sau đây là chương trình tương đương được viết bằng Java cũng hỗ trợ while và do...whilecác vòng lặp. Chương trình sau sẽ inHello, World! năm lần như chúng ta đã làm trong trường hợp Lập trình C -
Bạn có thể thử thực hiện chương trình sau để xem kết quả đầu ra, kết quả này phải giống với kết quả được tạo bởi ví dụ trên.
public class DemoJava {
public static void main(String []args) {
int i = 0;
while ( i < 5 ) {
System.out.println("Hello, World!");
i = i + 1;
}
}
}
Các break và continue Các câu lệnh trong lập trình Java hoạt động khá giống với cách chúng hoạt động trong lập trình C.
Vòng lặp bằng Python
Sau đây là chương trình tương đương được viết bằng Python. Python cũng hỗ trợwhile và do...whilecác vòng lặp. Chương trình sau sẽ inHello, World!năm lần so với chúng tôi đã làm trong trường hợp Lập trình C. Ở đây bạn phải lưu ý rằng Python không sử dụng dấu ngoặc nhọn cho phần thân của vòng lặp, thay vào đó nó chỉ đơn giản xác định phần thân của vòng lặp bằng cách sử dụng thụt đầu dòng của các câu lệnh.
Bạn có thể thử thực hiện chương trình sau để xem kết quả. Để cho thấy sự khác biệt, chúng tôi đã sử dụng một câu lệnh in nữa, câu lệnh này sẽ được thực thi khi vòng lặp kết thúc.
i = 0
while (i < 5):
print "Hello, World!"
i = i + 1
print "Loop ends"
Khi chương trình trên được thực thi, nó tạo ra kết quả sau:
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Loop ends
Các break và continue các câu lệnh trong Python hoạt động khá giống với cách chúng làm trong lập trình C.