Khi làm việc với vòng lặp trong Python, đôi khi bạn cần một cách để thoát ra sớm hơn so với điều kiện ban đầu. Đó là lúc bạn sẽ dùng đến lệnh break. Bài viết này sẽ trình bày một cách rõ ràng về cách thức lệnh break hoạt động và làm thế nào để tận dụng lệnh này một cách hiệu quả.
Lệnh Break trong Python là gì
Câu lệnh break trong Python là một lệnh được sử dụng để kết thúc ngay lập tức vòng lặp hiện tại và chuyển sang thực hiện câu lệnh kế tiếp sau vòng lặp đó. Cách hoạt động của break trong Python tương tự như câu lệnh break trong ngôn ngữ C.
Công dụng phổ biến nhất của break là khi có một điều kiện đặc biệt phát sinh từ bên ngoài, yêu cầu thoát khỏi vòng lặp ngay lập tức. Câu lệnh break có thể được dùng trong cả vòng lặp while và for của Python.
Trong trường hợp bạn sử dụng các vòng lặp lồng nhau, câu lệnh break sẽ dừng thực thi vòng lặp bên trong cùng chứa break và sau đó chương trình sẽ tiếp tục thực thi các lệnh ngay sau khối lệnh chứa vòng lặp này.
Cú pháp của câu lệnh break trong Python
Cú pháp của câu lệnh break trong Python như sau:
vòng_lặp:
kiểm_tra_điều_kiện:
break
Lưu ý: Cú pháp này không phải là code Python thực tế, đây chỉ là cách biểu diễn tổng quan cho người học dễ hình dung
Giải thích:
- Câu lệnh
break
được đặt bên trong một vòng lặp (có thể làwhile
hoặcfor
). - Trong vòng lặp, nếu có một điều kiện nào đó được kiểm tra và thỏa mãn, câu lệnh
break
sẽ được thực thi. - Khi break được gọi, vòng lặp hiện tại sẽ bị dừng lại ngay lập tức, và chương trình sẽ tiếp tục thực thi các lệnh sau vòng lặp.
Flowchart của lệnh break trong Python
Dưới đây là sơ đồ minh họa cho cách thức hoạt động của lệnh break
Lệnh break với vòng lặp for
Nếu sử dụng lệnh break bên trong một vòng lặp for, lệnh này sẽ làm gián đoạn luồng thực thi bình thường của chương trình và thoát khỏi vòng lặp ngay lập tức, trước khi hoàn thành tất cả các lần lặp.
Ví dụ
Trong ví dụ dưới đây, chúng ta sẽ thấy cách lệnh break
hoạt động trong vòng lặp for
:
for letter in 'Python':
if letter == 'h':
break
print ("Chữ cái hiện tại:", letter)
print ("Tạm biệt!")
Khi thực thi đoạn mã trên, kết quả sẽ là:
Chữ cái hiện tại: P
Chữ cái hiện tại: y
Chữ cái hiện tại: t
Tạm biệt!
Giải thích code:
for letter in 'Python':
: Câu lệnh này khởi tạo một vòng lặpfor
, duyệt qua từng ký tự trong chuỗi ‘Python’, và gán mỗi ký tự cho biếnletter
ở mỗi lần lặp.if letter == 'h':
: Câu lệnh điều kiện kiểm tra xem giá trị củaletter
có phải là ký tự'h'
không.break
: Nếu điều kiện trên đúng (tức làletter
là'h'
), lệnhbreak
sẽ được thực thi. Lệnh này lập tức dừng vòng lặpfor
, và chương trình sẽ tiếp tục thực thi câu lệnh ngay sau vòng lặpfor
.print ("Chữ cái hiện tại:", letter)
: Nếu điều kiệnletter == 'h'
là sai, câu lệnh này in ra chữ cái hiện tại.print ("Tạm biệt!")
: Sau khi vòng lặpfor
kết thúc, dù là kết thúc thông thường hay kết thúc do lệnhbreak
, dòng chữ này được in ra màn hình
Lệnh break với vòng lặp while
Tương tự như vòng lặp for
, chúng ta cũng có thể dùng lệnh break
để bỏ qua phần còn lại của mã bên trong vòng lặp while
khi một điều kiện nhất định trở thành đúng.
Ví dụ
Đoạn mã dưới đây minh họa cách dùng lệnh brea
k với vòng lặp while
:
var = 10
while var > 0:
print ('Giá trị biến hiện tại:', var)
var = var - 1
if var == 5:
break
print ("Tạm biệt!")
Khi thực thi đoạn code trên, màn hình hiển thị kết quả sau:
Giá trị biến hiện tại: 10
Giá trị biến hiện tại: 9
Giá trị biến hiện tại: 8
Giá trị biến hiện tại: 7
Giá trị biến hiện tại: 6
Tạm biệt!
Giải thích code:
var = 10
: Khởi tạo biếnvar
với giá trị ban đầu là 10.while var > 0:
: Vòng lặpwhile
tiếp tục thực thi các lệnh bên trong cho đến khi giá trị củavar
nhỏ hơn hoặc bằng 0.print ('Giá trị biến hiện tại:', var)
: In giá trị hiện tại củavar
trước khi thay đổi.var = var - 1
: Giảm giá trị củavar
đi 1 sau mỗi lần lặp.if var == 5:
: Kiểm tra nếu giá trị củavar
bằng 5.break
: Nếuvar
bằng 5 thì lệnhbreak
sẽ kết thúc vòng lặp ngay lập tức, bỏ qua phần còn lại của các lần lặpprint ("Tạm biệt!")
: In thông báo khi vòng lặpwhile
kết thúc
Lệnh break với vòng lặp lồng nhau
Trong vòng lặp lồng nhau, một vòng lặp được định nghĩa bên trong một vòng lặp khác. Vòng lặp bao ngoài (tức vòng lặp chứa vòng lặp bên trong) được gọi là vòng lặp ngoài (outer loop), còn vòng lặp nằm bên trong là vòng lặp trong (inner loop).
Khi sử dụng lệnh break
với các vòng lặp lồng nhau, nó sẽ hoạt động như sau:
- Nếu lệnh
break
được sử dụng bên trong vòng lặp trong, chỉ có vòng lặp trong sẽ bị bỏ qua. Chương trình sẽ tiếp tục thực thi các lệnh sau vòng lặp trong. - Nếu lệnh
break
được sử dụng trong vòng lặp ngoài, cả vòng lặp ngoài và vòng lặp trong đều sẽ bị bỏ qua. Chương trình sẽ tiếp tục thực thi các lệnh ngay sau vòng lặp ngoài.
Ví dụ
Chương trình sau đây minh họa cách sử dụng lệnh brea
k trong vòng lặp for
khi duyệt qua một danh sách. Ở ví dụ này, chương trình sẽ tìm kiếm một số cụ thể trong danh sách. Nếu số đó được tìm thấy, vòng lặp sẽ kết thúc và in ra thông báo “đã tìm thấy số”.
no = 33
numbers = [11, 33, 55, 39, 55, 75, 37, 21, 23, 41, 13]
for num in numbers:
if num == no:
print('đã tìm thấy số trong danh sách')
break
else:
print('không tìm thấy số trong danh sách')
Chương trình trên sẽ cho ra kết quả như sau:
đã tìm thấy số trong danh sách
Giải thích code:
no = 33
: Câu lệnh này gán giá trị 33 cho biếnno
, đây là số mà chương trình sẽ tìm kiếm trong danh sách.numbers = [11, 33, 55, 39, 55, 75, 37, 21, 23, 41, 13]
: Dòng này tạo ra một danh sách các số nguyên.for num in numbers:
: Vòng lặpfor
này duyệt qua từng số trong danh sáchnumbers
.if num == no:
: Câu lệnhif
này kiểm tra xem số hiện tại (num
) có bằng với số cần tìm (no
) hay không. Nếu điều kiện trên là đúng (số hiện tại bằng số cần tìm), câu lệnhprint('đã tìm thấy số trong danh sách')
được thực hiện để in thông báo, sau đó lệnhbreak
sẽ ngay lập tức kết thúc vòng lặpfor
.else:
: Khối lệnhelse
này chỉ được thực hiện khi vòng lặpfo
r hoàn thành hết tất cả các lần lặp mà không gặp lệnhbreak
. Trong trường hợp này, điều đó có nghĩa là không có số nào trong danh sách bằng vớino
. Nếu khối lệnhelse
được thực hiện, thì chương trình sẽ in ra màn hình thông báo:print('không tìm thấy số trong danh sách')
Lời kết
Vậy là chúng ta đã cùng tìm hiểu chi tiết về lệnh break và cách lệnh này hoạt động trong Python. Hy vọng những kiến thức này sẽ giúp bạn linh hoạt hơn trong việc kiểm soát luồng thực thi của vòng lặp và giải quyết các bài toán lập trình một cách hiệu quả.