Lệnh break và continue là hai câu lệnh thao tác với vòng lặp có thể nói vừa là duy nhất cũng như là mạnh mẽ và quan trọng nhất trong lập trình. Với 2 câu lệnh này, vòng lặp của bạn sẽ linh hoạt hơn, việc sử dụng 2 câu lệnh này cũng cho phép chúng ta có thể điều khiển vòng lặp để tính toán, thao tác tốt hơn. Vậy trong bài học ngày hôm nay chúng ta sẽ cùng tìm hiểu về hai câu lệnh này nhé !
Câu lệnh break
Đầu tiên, mình sẽ trình bày về câu lệnh break, cú pháp sử dụng rất đơn giản như sau:
break;
Câu lệnh này được sử dụng để phá vỡ vòng lặp đang chạy và chỉ có thể sử dụng ở bên trong một vòng lặp. Câu lệnh này sẽ đưa chương trình thoát ra khỏi vòng lặp đó ngay lập tức mà không cần biết điều kiện lặp đúng hay sai.
Trình bày dưới dạng sơ đồ khối như sau:
Để dễ hiểu hơn chúng ta sẽ xét một ví dụ với một vòng lặp vô tận sử dụng break:
using System.IO; using System; namespace luyencodec_ { class Program { static void Main() { int i = 1; while (true) { Console.WriteLine(i); if (i % 5 == 0) { break; } ++i; } Console.ReadKey(); // dừng màn hình } } }
Chương trình này sẽ cho ra kết quả:
1 2 3 4 5
Rõ ràng rằng điều kiện lặp của while là giá trị true
đây là một giá trị hằng logic luôn đúng vậy nên vòng lặp này là vô tận, và sẽ in ra liên tục các số tăng dần 1 đơn vị. Nhưng bên trong vòng lặp, mình đã sử dụng một câu lệnh rẽ nhánh kiểm tra điều kiện i % 5 == 0
nghĩa là i
có chia hết cho 5 hay không. Nếu điều kiện này đúng chúng ta sẽ cho chương trình thực hiện câu lệnh break bên trong khối lệnh if
. Sau khi liên tiếp tăng 1 đơn vị thì đến khi giá trị i
chia hết cho 5 chương trình ngay lập tức thoát ra khỏi vòng lặp, các bạn có thể thấy ở output.
Một ví dụ khác cho thấy câu lệnh break không thể sử dụng bên ngoài vòng lặp:
using System.IO; using System; namespace luyencodec_ { class Program { static void Main() { int i = 1; if (i >= 1) { Console.WriteLine("chuong trinh se khong hoat dong"); break; } Console.ReadKey(); // dừng màn hình } } }
Chương trình lúc này sẽ có lỗi phát sinh:
main.cs(13,17): error CS0139: No enclosing loop out of which to break or continue
Lỗi này nói rằng không có vòng lặp nào chứa break hoặc continue để có thể thực thi câu lệnh này.
Câu lệnh continue
Câu lệnh thứ 2 trong các câu lệnh thao tác vòng lặp và cũng là câu lệnh cuối cùng trong việc này. Cú pháp sử dụng continue như sau:
continue;
Khác với break, câu lệnh continue sẽ ngay lập tức đưa vòng lặp quay trở lại kiểm tra điều kiện lặp và quay trở lại lặp từ đầu như vòng lặp bình thường.
Trình bày dưới dạng sơ đồ khối như sau:
Lưu ý: Việc sử dụng câu lệnh continue này không hợp lí có thể đưa vòng lặp trở thành một vòng lặp vô tận.
Chúng ta xét một ví dụ sử dụng continue như sau:
using System.IO; using System; namespace luyencodec_ { class Program { static void Main() { int i = 0; while (i < 10) { ++i; if (i % 2 == 0) { continue; } Console.WriteLine(i); } Console.ReadKey(); // dừng màn hình } } }
Chương trình này sẽ cho ra kết quả:
1 3 5 7 9
Trong chương trình này như các bạn có thể thấy trên output một điều rằng là các số xuất ra toàn là số lẻ. Mình đã để một cấu trúc rẽ nhánh trước câu lệnh xuất ra và nếu điều kiện i % 2 == 0
tức i
chia hết cho 2 thì câu lệnh continue
sẽ được gọi tới, lúc này vòng lặp sẽ quay lại kiểm tra điều kiện và bỏ qua các câu lệnh phía sau nó. Nên chương trình lúc này sẽ không xuất ra một số chẵn nào cả.
Một ví dụ về việc sử dụng continue không hợp lí dẫn tới việc vòng lặp vô tận:
using System.IO; using System; namespace luyencodec_ { class Program { static void Main() { int i = 0; while (i < 5) { if (i % 2 == 0) { continue; } ++i; Console.WriteLine(i); } Console.ReadKey(); // dừng màn hình } } }
Chương trình này sẽ bị lặp vô tận vì i = 0
mà 0 % 2 = 0
nên điều kiện i % 2 == 0
sẽ đúng và sẽ gọi tới continue, lúc này câu lệnh ++i
sẽ không được gọi tới và giá trị của i
vẫn giữ nguyên là 0 nên câu lệnh continue sẽ bị gọi tới liên tục không thể tăng giá trị cho i
, chương trình bị lặp liên tục.
Lưu ý: Khi chạy chương trình này bạn có thể tắt cửa sổ chạy chương trình hoặc ấn tổ hợp Ctrl+C để thoát ra khỏi chương trình.
Khi nào sử dụng break, khi nào sử dụng continue
Phần này mình sẽ note lại 2 mẹo nhỏ cho các bạn phân biệt khi nào nên sử dụng break khi nào nên dùng continue.
- Nên sử dụng break khi có một điều kiện khác điều kiện lặp thỏa mãn trong một số trường hợp mà chúng ta nên dừng vòng lặp lại ngay.
- Nên sử dụng continue khi có một điều kiện khác điều kiện lặp thỏa mãn trong một số trường hợp mà chúng ta phải bỏ qua các câu lệnh phía sau và cho vòng lặp thực hiện lại các thao tác trước đó lại một lần nữa nhằm cố gằng bỏ qua trường hợp dẫn tới chương trình phải gọi continue.
Tổng kết
Như vậy là trong bài học ngày hôm này, mình đã trình bày cho các bạn các sử dụng câu lệnh break và continue trong C#. Ở bài học tiếp theo, chúng ta sẽ tìm hiểu về cách ép từ kiểu dữ liệu này sang kiểu dữ liệu khác trong C#. Cảm ơn bạn đã đọc bài viết này. Hãy tiếp tục đồng hành cùng Lập trình không khó trong những bài viết tiếp theo nhé !
(ngoài ra các bạn có thể thử sức với các bài tập sau đây)
Để lại một bình luận