Các Vòng Lặp While, For Trong C, Python 2023

Đánh giá bài này

Các vòng lặp được sử dụng khi ta muốn thực hiện một khối các câu lệnh nhiều lần. Trong c, python 2 vòng lặp cơ bản là vòng lặp while và vòng lặp for, chúng ta cũng sẽ tìm hiểu kỹ chúng trong bài viết dưới đây của Tekmonk.

Vòng lặp là gì?

Vòng lặp là công cụ được dùng để thực thi một số việc giống nhau, được lặp đi lặp lại nhiều lần cho đến khi tìm được kết quả.

Vòng lặp for trong C++

  • Tính chất: Khi một đoạn code C++ muốn lặp lại 10 lần thì ta chỉ việc copy đoạn code đó 10 lần là xong nhưng nếu lặp lại 1000 lần thì không thể copy 1000 lần được. Chính vì vậy vòng lặp for ra đời.
Việc copy lại code như hình rất mất thời gian

Việc copy lại code như hình rất mất thời gian

  • Mục đích sử dụng: Sử dụng vòng lặp for để thực hiện công việc mình muốn lặp lại 10 lần, 1000 lần hay thậm chí 1 triệu lần cũng thật đơn giản khi tôi thay số 10 thành số 1000 (hoặc 1 triệu) chỉ với một đoạn code đơn giản.
  • Cú pháp:

for (khởi tạo giá trị biến lặp; điều kiện lặp; cập nhật biến lặp)

{

// Các câu lệnh cần lặp

}

  • Biểu diễn bằng lưu đồ: 
Lưu đồ

Lưu đồ vòng lặp for

Vòng lặp while trong C++

  • Tính chất: Một lệnh vòng lặp while trong Ngôn ngữ chương trình C/C++ thực hiện lặp đi lặp lại một lệnh miễn là lệnh đó thỏa yêu cầu đề bài cho đến khi lệnh đó sai yêu cầu đề thì dừng lại.
  • Cú pháp:
while (dieu_kien)
{
   cac_lenh;
}

Ở đây, cac_lenh có thể là lệnh đơn hoặc một khối các lệnh. dieu_kien có thể là bất kỳ biểu thức nào, khi nhận giá trị thỏa yêu cầu đề bài thì vong lặp while sẽ vẫn tiếp diễn. Khi nhận giá trị sai yêu cầu thì vòng lặp while ngay lập tức chuyển tới dòng lệnh ngay sau vòng lặp.

  • Biểu diễn bằng lưu đồ: 
Lưu đồ vòng lặp while

Lưu đồ vòng lặp while

Vòng lặp While Trong Python

Vòng lặp while trong Python có tác dụng gì? Cú pháp và cách sử dụng vòng lặp while ra sao? Đó là những nội dung mà chúng ta sẽ tiếp cận trong bài học Python này.

Vòng lặp được sử dụng trong lập trình để lặp lại một đoạn code cụ thể, while cũng là một trong số đó. 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 điều_kiện_kiểm_tra:
      Khối lệnh của while

Trong vòng lặp while, điều_kiện_kiểm_tra sẽ được kiểm tra đầu tiên. Khối lệnh của vòng lặp chỉ được nạp vào nếu điều_kiện_kiểm_tra là True. Sau một lần lặp, điều_kiện_kiểm_tra sẽ được kiểm tra lại. Quá trình này sẽ tiếp tục cho đến khi điều_kiện_kiểm_tra là False.

See also  Số Armstrong là gì? Cách Tìm Số Armstrong Trong C++ hay nhất 2023

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ủa while 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 điều_kiện_kiểm_tra đã False. Khi đó, khối lệnh của while sẽ bị bỏ qua và phần code ngay sau đó sẽ được thực thi.

While Trong Python
While Trong Python

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ụ 1:

count = 0
n = 0
while (count < 8):
      print ('Số thứ', n,' là:', count)
      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 giá trị này không còn nhỏ hơn 8 nữa. Kết quả khi chạy lệnh trên ta có:

Số thứ 0 là: 0
Số thứ 1 là: 1
Số thứ 2 là: 2
Số thứ 3 là: 3
Số thứ 4 là: 4
Số thứ 5 là: 5
Số thứ 6 là: 6
Số thứ 7 là: 7
Hết rồi!

Ví dụ 2: Sử dụng while để 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.

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ụ 4: 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òng lặp For Trong Python

Vòng lặp for trong Python là gì?

Vòng lặp for được dùng để lặp qua một chuỗi (danh sách, bộ dữ liệu, từ điển, một bộ hoặc một chuỗi).

See also  ✅Hàm gets() trong C mới nhất 2023

Tuy nhiên, điều đó hơi khác khái niệm for ở những ngôn ngữ lập trình khác. Nó hoạt động giống phương thức lặp hơn như được tìm thấy ở các ngôn ngữ lập trình hướng đối tượng khác.

Với vòng lặp for, bạn có thể triển khai một tập hợp cách lệnh, một lần cho mỗi mục trong danh sách, bộ hay tập hợp dữ liệu…

Ví dụ:

Liệt kê từng loại trái cây dưới dạng danh sách:

fruits = ["apple", "banana", "cherry"]
for x in fruits:
  print(x)

Vòng lặp for trong python được sử dụng để lặp một biến qua một dãy (List hoặc String) theo thứ tự mà chúng xuất hiện. Vòng lặp for trong python được sử dụng để lặp một phần của chương trình nhiều lần. Nếu số lần lặp là cố định thì vong lặp for được khuyến khích sử dụng, còn nếu số lần lặp không cố định thì nên sử dụng vòng lặp while.

Sau đây là cú pháp của vòng lặp for trong python:

for bien_vong_lap in day_sequense::
    // khối lệnh

Nếu một mảng day_sequense gồm một danh sách các biểu thức, nó được ước lượng đầu tiên. Sau đó, item đầu tiên trong mảng được gán cho biến vòng lặp bien_vong_lap. Tiếp theo, các khối lệnh bên trong vòng lặp được thực thi và khối lệnh này được thực thi tới khi mảng này đã được lặp xong.

Dưới đây là ví dụ minh họa vòng lặp for trong Python:

# Ví dụ lặp một chuỗi
for letter in "Python":
    print ("Chữ cái hiện tại:", letter);
 
# Ví dụ lặp một mảng
fruits = ['chuối', 'táo',  'xoài']
for fruit in fruits:
    print ("Bạn có thích ăn:", fruit);

Kết quả:

Bạn có thích ăn: chuối
Bạn có thích ăn: táo
Bạn có thích ăn: xoài

Lặp qua index của mảng

Một cách khác để lặp qua mỗi item là bởi chỉ mục index bên trong mảng đó. Bạn theo dõi ví dụ đơn giản sau:

# Ví dụ lặp một mảng
fruits = ['chuối', 'táo',  'xoài']
for index in range(len(fruits)):
    print ("Bạn có thích ăn:", fruits[index]);

Kết quả:

Bạn có thích ăn: chuối
Bạn có thích ăn: táo
Bạn có thích ăn: xoài

Vòng lặp for qua một chuỗi

Một chuỗi là các đối tượng có thể dùng vòng lặp để đọc từng chữ cái một. Ví dụ:

#Lặp chữ cái trong quantrimang
for chu in 'quantrimang':
    print('Chữ cái hiện tại:', chu)

#Lặp từ trong chuỗi
chuoi = ['bố','mẹ','em']
for tu in chuoi:
    print('Anh yêu', tu)

Ta có kết quả đầu ra như sau:

Chữ cái hiện tại: q
Chữ cái hiện tại: u
Chữ cái hiện tại: a
Chữ cái hiện tại: n
Chữ cái hiện tại: t
Chữ cái hiện tại: r
Chữ cái hiện tại: i
Chữ cái hiện tại: m
Chữ cái hiện tại: a
Chữ cái hiện tại: n
Chữ cái hiện tại: g
Anh yêu bố
Anh yêu mẹ
Anh yêu em

Vòng lặp for trong một dãy số

Ngoài việc sử dụng vòng lặp for để lấy các chữ cái và ký tự trong chuỗi, ta còn sử dụng for để lấy các số trong 1 mảng dãy số.

# Tính tổng tất cả các số trong danh sách A
# Danh sách A
A = [1, 3, 5, 9, 11, 2, 6, 8, 10]
# Biến để lưu trữ tổng các số là tong, gán giá trị ban đầu bằng 0
tong = 0
# Vòng lặp for, a là biến lặp
for a in A:
     tong = tong+a
# Đầu ra: Tổng các số là 55
print("Tổng các số là", tong)

Khi chạy đoạn code trên, bạn sẽ nhận được kết quả là:

Tổng các số là 55

Lệnh break trong for

Với câu lệnh break, chúng ta có thể dừng vòng lặp trước khi nó lặp qua hết các mục trong chuỗi lặp. Ví dụ: dừng vòng lặp khi gặp dấu chấm (.) trong chuỗi tekmonk.edu.vn:

#Lặp chữ cái có break:

a=["tek","monk",".","edu",".","vn"]
for chu in a:
    if chu == ".":
        break
    print(chu)
print("Nội dung ngoài vòng lặp for")
Kết quả sau khi chạy đoạn code trên là:
tek
monk

Nội dung ngoài vòng lặp for

Hàm range()

Bạn có thể sử dụng hàm range() để tạo ra một dãy số. Ví dụ, range(100) sẽ tạo một dãy số từ 0 đến 99 (100 số).

See also  Cách Tìm Phần Tử Lớn Nhất Trong Mảng C++ hay nhất 2023✅

Hàm range(so_bat_dau, so_ket_thuc, khoang_cach_2_so) được sử dụng để tạo dãy số tùy chỉnh. Nếu không đặt khoảng cách giữa hai số thì Python sẽ hiểu mặc định nó bằng 1.

Ví dụ: Viết 100 lần “Anh xin lỗi“, ta sẽ cho biến i lặp từ 0 đến 100 như dưới đây:

for i in range(100):
    print ("Anh xin lỗi")
print("Em ơi, anh chép xong ồi nè!")

Hàm range() không lưu tất cả các giá trị trong bộ nhớ mà nó lưu giá trị bắt đầu, giá trị kết thúc và khoảng cách giữa hai số từ đó tạo ra số tiếp theo trong dãy.

Để range() xuất ra tất cả các giá trị, bạn cần sử dụng đến hàm list() giống như ví dụ dưới đây:

#Lệnh 1
print(range(9))
#Lệnh 2
print(list(range(9)))
#Lệnh 3
print(list(range(2, 5)))
#Lệnh 4
print(list(range(0, 15, 5)))

Chúng ta sẽ có đầu ra như sau:

range(0, 9)
[0, 1, 2, 3, 4, 5, 6, 7, 8]
[2, 3, 4]
[0, 5, 10]

Mỗi dòng tương ứng với Lệnh 1, 2, 3, 4 ở trên.

Hàm range() có thể sử dụng kết hợp với len() để lặp qua một dãy sử dụng index, như ví dụ dưới đây:

chuoi = ['bố','mẹ','em']

for tu in range(len(chuoi)):
    print("Anh yêu",chuoi[tu])

Ta có kết quả đầu ra giống như ví dụ 1 bên trên:

Anh yêu bố
Anh yêu mẹ
Anh yêu em

Học viện Công nghệ TekMonk – đồng hành và truyền lửa cho các thế hệ dẫn dắt tiên phong về công nghệ

 Địa chỉ 1: CEN X SPACE. Tầng 3, tháp 3-4, toà nhà Dolphin Plaza, số 6 Nguyễn Hoàng, Mỹ Đình 2, Nam Từ Liêm, Hà Nội.

 Địa chỉ 2: UP Coworking Space
Tầng 8, tòa nhà Hanoi Creative City, 1 Lương Yên, Bạch Đằng, Hai Bà Trưng, Hà Nội

 Địa chỉ 3: Officity Coworking Space
Tầng 3, Toàn B, Việt Đức Complex, Số 39 Lê Văn Lương, Thanh Xuân, Hà Nội

 Địa chỉ 4: Krow Office
Tầng 14, Tòa nhà Hapro, 11B Cát Linh, Quốc Tử Giám, Đống Đa, Hà Nội
Hotline: 024.56789.123
Website: tekmonk.edu.vn
Fanpage : https://facebook.com/Tekmonk.Accademy

Leave a comment