Video: The opportunity of adversity | Aimee Mullins 2025
Khi bạn vào trong các vòng lập trình bằng ngôn ngữ C, bạn sẽ khám phá ra niềm vui và dreads vô tận, hoặc vô hạn , các vòng lặp. Những vòng lặp tiếp tục mãi mãi bởi vì hoặc là lập trình viên quên bao gồm một cách để thoát khỏi vòng lặp hoặc điều kiện thoát chỉ là không bao giờ gặp nhau. Dù bằng cách nào, vòng lặp vô tận là một nỗi đau.
Nhưng đôi khi một chương trình C chứa một vòng lặp vô tận về mục đích. Kiểu xây dựng này có vẻ kỳ quặc, nhưng cơ sở của nhiều chương trình hiện đại là chúng ngồi và quay trong khi chờ đợi một điều gì đó xảy ra. Vòng lặp có thể như sau:
cho (;;) {check_Keyboard (); check_Mouse (); check_Events (); check_System ();}
Lưu ý rằng các điều kiện nằm trong dấu ngoặc đơn sau khi thiếu từ khóa, điều này không sao. Kết quả là một vòng lặp bất tận, trong đó các câu lệnh được kiểm tra lặp đi lặp lại nhiều lần, sau này: Chương trình đang tìm kiếm hoạt động ở đâu đó. Khi hoạt động được tìm thấy, chương trình đi ra và làm một cái gì đó thú vị. Nhưng hầu hết thời gian, chương trình chỉ ngồi trong loại vòng lặp này, chờ đợi một cái gì đó xảy ra. (Trình xử lý văn bản điển hình có thể thực hiện hàng ngàn các vòng lặp vì nó đợi giữa các phím bấm khi bạn gõ)
Nhập mã nguồn này và lưu nó vào đĩa. Sau đó biên dịch và chạy chương trình:
#include int main () {char ch; đặt ("Chương trình đánh máy"); đặt ("Loại đi:"); for (;) {ch = getchar ();} return (0);}
Có, bạn có thể nhập. Và bạn có thể thấy văn bản của mình trên màn hình. Nhưng làm thế nào để bạn dừng lại?
Để dừng, bạn phải phá vỡ vòng lặp vô hạn, có thể được thực hiện bằng cách nhấn Ctrl + C. Nhưng đó không phải là cách bạn muốn chương trình của bạn hoạt động. Thay vào đó, một điều kiện thoát phải được định nghĩa cho vòng lặp, đó là nơi từ khoá phá vỡ đi vào chơi.
Điều gì phá vỡ là ngay lập tức thoát khỏi một vòng lặp (bất kỳ vòng lặp ngôn ngữ C, không chỉ cho các vòng lặp). Khi máy tính nhìn thấy sự phá vỡ, nó chỉ giả định rằng vòng lặp được thực hiện và tiếp tục như thể tình trạng kết thúc của vòng lặp đã được đáp ứng:#include int main () {char ch; đặt ("Chương trình đánh máy"); đặt ("Loại đi, nhấn '~' để thoát:"); cho (;) {ch = getchar (); if (ch == '~') {break;}} return (0);}
Bây giờ một điều kiện thoát được xác định. Nếu so sánh trong dòng 12 kiểm tra để xem liệu một ký tự ~ (dấu ngã) được nhập vào. Nếu có, vòng lặp bị dừng lại bởi câu lệnh break.
Thay đổi mã nguồn của bạn sao cho phù hợp với những gì vừa được hiển thị. Biên dịch và chạy. Bây giờ, bạn có thể dừng chương trình bằng cách nhập ký tự ~.
Lưu ý rằng câu lệnh if cũng có thể được viết mà không có niềng răng:
if (ch == '~') break;
Dòng này có thể dễ đọc hơn so với sử dụng dấu ngoặc.