Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

CÂU LỆNH WHILE

Trong Python,  while  được dùng để lặp lại một khối lệnh, đoạn code khi điều
kiện kiểm tra là đúng.  while  dùng trong những trường hợp mà chúng ta không
thể dự đoán trước được số lần cần lặp là bao nhiêu.
Cú pháp của while trong Python
while dieu_kien:
Khối lệnh của while

Trong vòng lặp while,  dieu_kien  sẽ được kiểm tra đầu tiên, nếu nó
là True, thì khối lệnh của vòng lặp sẽ được thực thi. Sau một lần
lặp,  dieu_kien  sẽ được kiểm tra lại và quá trình lặp này sẽ chỉ dừng
cho đến khi điều kiện là False.

Trong Python mọi giá trị khác 0 đều là True, None và 0 được hiểu
là False. Đặc điểm này có thể dẫn đến trường hợp là  while  có thể
không chạy vì ngay lần lặp đầu tiên  dieu_kien  đã False. Khi đó, khối
lệnh của  while  sẽ bị bỏ qua và phần code dưới khối lệnh  while  sẽ
được thực thi.
https://st.quantrimang.com/photos/image/2017/10/27/so-dong-vong-lap-while-
python.jpg COPY LINK LẤY HÌNH GIÚP T NHA T KO COPY ĐC Ắ.

Giống như if hay vòng lặp for, khối lệnh của  while  cũng được xác định
thông qua thụt lề. Khối lệnh bắt đầu với thụt lề đầu tiên và kết thúc với
dòng không thụt lề đầu tiên liền sau khối.
Ví dụ: In lần lượt các số nhỏ hơn 8
#In và đếm các số từ 0 tới 8:

count = 1
n = 0
while (n < 8):
print ('Số thứ', count,' là:', n)
n = n + 1
count = count + 1
print ("Hết rồi!")

Với đoạn code này, ta sẽ tăng dần count và in giá trị của n cho đến
khi n không còn nhỏ hơn 8 nữa. Kết quả khi chạy lệnh trên ta có:
Số thứ 1 là: 0
Số thứ 2 là: 1
Số thứ 3 là: 2
Số thứ 4 là: 3
Số thứ 5 là: 4
Số thứ 6 là: 5
Số thứ 7 là: 6
Số thứ 8 là: 7
Hết rồi!
Lưu ý:
 Hãy nhớ tăng biến điều kiện trong  while  (trong ví dụ trên là n), nếu
không vòng lặp sẽ trở thành vòng lặp vô hạn - tiếp tục lặp mãi mãi.
 Vòng lặp  while  yêu cầu biến trong điều kiện phải là giá trị xác định,
trong ví dụ trên biến lập chỉ mục lặp là biến n, chúng ta phải đặt giá
trị ban đầu cho nó là 1.

Ví dụ: Tính tổng các số


 n = int(input("Nhập n: ")) #Nhập số n tùy ý
 tong = 0 #khai báo và gán giá trị cho tong
 i = 1 #khai báo và gán giá trị cho biến đếm i

 while i <= n:
 tong = tong + i
 i = i+1 # cập nhật biến đếm

 print("Tổng là", tong)

Với khối lệnh trên ta có, nhập một số tự nhiên n bất kỳ và tính tổng các số từ 1
đến n, sau đó in tổng. Biến lưu trữ tổng là tong, biến đếm là i, cho đến khi i còn
nhỏ hơn hoặc bằng n thì vòng lặp vẫn tiếp tục và tong vẫn tăng.
Sau khi chạy lệnh ta có kết quả:
Nhập n: 11
Tổng là 66

Trong ví dụ trên biến đếm i cần phải được tăng giá trị, điều này là rất quan
trọng, nếu không sẽ dẫn đến một vòng lặp vô hạn. Rất nhiều trường hợp lưu ý
này đã bị lãng quên.
Ví dụ 3: Vòng lặp vô hạn
Lấy lại ví dụ trên, bạn chỉ cần bỏ đi dòng  i=i+1
n = int(input("Nhập n: ")) #Nhập số n tùy ý
tong = 0 #khai báo và gán giá trị cho tong
i = 1 #khai báo và gán giá trị cho biến đếm i
while i <= n:
tong = tong + i

print("Tổng là", tong)

Khi này chạy lệnh ta sẽ được:


Nhập n: 1
Traceback (most recent call last):
File "C:/Users/Quantrimang.com/Programs/Python/Python36-32/QTM.com", line 6, in
<module>
tong = tong + i
KeyboardInterrupt
2
3
4
5

Khi bạn nhập giá trị 1 vào thì thấy không có lệnh nào được thực hiện tiếp, nhấn
Enter > nhập 2 > Enter > nhập 3... đến 5 vẫn không thấy tong được in. Đây là
một trường hợp của lệnh vô hạn. Để thoát khỏi vòng lặp vô hạn bạn nhấn
phím Ctrl + C, khi đó sẽ xuất hiện dòng thông báo "Traceback..." như bên trên.

Lệnh break trong while


Với câu lệnh  break , chúng ta có thể dừng vòng lặp ngay cả khi điều kiện
của  while  là True:
Ví dụ: Thoát vòng lặp khi i bằng 3:
i = 1
while i < 6:
print(i)
if i == 3: #kiểm tra điều kiện xem i bằng 3 hay chưa
break
i += 1 #cập nhật biến đếm

Kết quả của ví dụ trên là i sẽ được in từ số 1 đến số 3, sau khi in xong


số 3 gặp lệnh if và vòng lặp sẽ dừng lại (không in tiếp số 4, 5):
1
2
3

Lệnh continue trong while


Câu lệnh  continue  trong  while  sẽ khiến cho vòng lặp bỏ qua lần lặp hiện tại
và tiếp tục chạy ở lần lặp tiếp theo.
Ví dụ: In các số từ 1 đến 6 ngoại trừ số 3
i = 0
while i < 6:
i += 1
if i == 3:
continue
print(i)

Trong 2 vòng lặp đầu tiên i bằng 1 và 2 thì vòng lặp vẫn chạy lệnh in. Tới vòng
lặp tiếp theo, phù hợp với điều kiện  if  i bằng 3 thì sẽ chạy lệnh  continue  =>
bỏ qua vòng lặp đó để chạy thẳng sang vòng lặp kế sau nó (in số 4, 5, 6).
Kết quả đầu ra:
1
2
4
5
6

Kết hợp while với else


Giống như vòng lặp  for , bạn cũng có thể kết hợp  else  với  while . Trong
trường hợp này, khối lệnh của  else  sẽ được thực hiện khi điều kiện
của  while  là False.
Ví dụ: Minh họa việc sử dụng while kết hợp với else
dem = 0
while dem < 3:
print("Đang ở trong vòng lặp while")
dem = dem + 1
else:
print("Đang ở trong else")

Ở đây ta sử dụng biến dem để in chuỗi "Đang ở trong vòng lặp while" 3 lần.
Đến lần lặp thứ 4, điều kiện của  while  trở thành False, nên phần lệnh
của  else  được thực thi. Kết quả là:
Đang ở trong vòng lặp while
Đang ở trong vòng lặp while
Đang ở trong vòng lặp while
Đang ở trong else

Ví dụ: Đếm và in các số nhỏ hơn 2


n = 0
while n < 2:
print(n,"nhỏ hơn 2")
n = n + 1
else:
print (n,"không nhỏ hơn 2")

Giá trị ban đầu của n ta gán là 0, tăng dần giá trị của n và in, lặp cho đến khi n
không nhỏ hơn 2, nếu n bằng hoặc lớn hơn 2 thì vòng lặp kết thúc và khối
lệnh  else  sẽ được thực thi, kết quả là:
0 là nhỏ hơn 2
1 là nhỏ hơn 2
2 không nhỏ hơn 2

Lệnh while trên một dòng


Nếu vòng lặp  while  chỉ có một lệnh duy nhất thì có thể viết trên cùng một
dòng với  while  như ví dụ này:
Ví dụ: Vòng lặp vô hạn với while một dòng lệnh

flag = 1
while (flag): print ('Flag đã cho là True!")
Print ("Hẹn gặp lại!")

Đây là một vòng lặp vô hạn, hãy nhớ tổ hợp phím Ctrl + C trước khi bạn
nhấn F5 hay Run, nếu không nó sẽ chạy từ ngày này qua ngày khác đấy .

You might also like