- Bài 1: Kotlin là gì? Ưu và nhược được của Kotlin
- Bài 2: Cài đặt Kotlin trên Android Studio
- Bài 3: Kiểu dữ liệu và khai báo biến trong Kotlin
- Bài 4: Keywords và toán tử trong Kotlin
- Bài 5: Câu lệnh rẽ nhánh trong Kotlin
- Bài 6: Vòng lặp trong Kotlin
- Bài 7: Xử lý ngoại lệ trong Kotlin
- Bài 8: Xử lý chuỗi trong Kotlin
- Bài 9: Collections trong Kotlin
Bài 6: Vòng lặp trong Kotlin - Học Kotlin cơ bản
Đăng bởi: Admin | Lượt xem: 2950 | Chuyên mục: Android
1. Vòng lặp for
Với mọi ngôn ngữ lập trình thì các cấu trúc vòng lặp rất là quan
trọng, đặc biệt là vòng for rất là phổ biến và hầu như trong mọi phần mềm đều
chắc chắn sử dụng để giải quyết những công việc lặp đi lặp lại một cách có quy
luật.
1. Loại for thứ 1 –
Duyệt tuần tự hết giá trị trong danh sách (closed
range)
for (i in a..b) { Xử lý biến i }
Với cú pháp ở trên thì biến i thực ra là biến bước nhảy, nó tự
động tăng dần từ a cho tới b. Ta có thể thay tên biến i thành tên biến bất kỳ
Ví dụ 1: Viết chương trình tính giai thừa của một số nguyên
dương n:
fun main(args: Array<String>) {
var gt:Int=1
val n:Int=5
for (i in 1..n)
{
gt *= i
}
println("$n!=$gt")
}
Ở đoạn lệnh trên, i sẽ chạy tuần tự từ 1 tới n (với n=5). Mỗi
lần chạy nó sẽ nhân dồn i cho biến gt. Kết thúc vòng lặp ta sẽ được giai thừa
của n.
2. Loại for thứ 2 –
Duyệt tuần tự gần hết giá trị trong danh sách (half-open
range)
for (i in a until b) { Xử lý biến i }
Với cú pháp ở trên thì biến i thực ra là biến bước nhảy, nó tự
động tăng dần từ a cho tới gần b. Ta có thể
thay tên biến i thành tên biến bất kỳ
Ví dụ 2: Viết chương trình tính tổng từ 1 tới gần số nguyên
dương n:
fun main(args: Array<String>) {
var sum:Int=0
val n:Int=5
for (i in 1 until n)
{
sum += i
}
println("Tổng=$sum")
}
Được thực hiện, với kết quả: Tổng=10
3. Loại for thứ 3 –
Điều hướng bước nhảy step
for (i in a .. b step x) { Xử lý biến i }
Với cú pháp ở trên thì biến i thực ra là biến bước nhảy, nó tự
động tăng dần từ a cho tới b, nhưng mỗi lần duyệt nó tăng theo x đơn vị. Ta có thể thay tên biến i thành tên biến bất
kỳ
Ví dụ 3: Viết chương trình tính tổng các số chẵn nhỏ hơn hoặc
bằng số nguyên dương n:
fun main(args: Array<String>) {
var sum:Int=0
var n:Int=10
for (i in 2 .. n step 2)
sum+=i
println("Tổng chẵn=$sum")
}
Chương trình chạy mỗi lần tăng i lên 2 đơn vị, ta khởi tạo i
chạy từ 2 nên nó sẽ tự động tăng thành các số chẵn, gặp 10 thì nó thực hiện và
kết thúc vòng lặp.
Được thực hiện, với kết quả: Tổng chẵn
=30
4. Loại for thứ 4 – Điều
hướng bước nhảy downTo
for (i in b downTo a) { Xử lý biến i }
Với cú pháp ở trên thì biến i thực ra là biến bước nhảy, nó tự
động giảm dần từ b cho tới a, nhưng mỗi lần duyệt nó giảm 1 đơn vị. Ta có thể
thay tên biến i thành tên biến bất kỳ
for (i in b downTo a step x) { Xử lý biến i }
Với cú pháp ở trên thì biến i thực ra là biến bước nhảy, nó tự
động giảm dần từ b cho tới a, nhưng mỗi lần duyệt nó giảm x đơn vị. Ta có thể
thay tên biến i thành tên biến bất kỳ
Ví dụ 4: Viết chương trình tính Ước số chung lớn nhất của 2
số bất kỳ
fun main(args: Array<String>) {
var a:Int=9
var b:Int=6
var ucscln=1
var min=if (a>b) b else a
for (i in min downTo 1)
{
if(a%i==0 && b%i==0)
{
ucscln=i
break
}
}
println("USCL của $a và $b = $ucscln")
}
Được thực hiện, với kết quả: USCL
của 9 và 6 = 3
5. Loại for thứ 5 –
Lặp tập đối tượng
for (item in collection)
{
println(item)
}
Cấu trúc for trên sẽ duyệt từng đối tượng trong một tập đối
tượng
Ví dụ 5: Duyệt danh sách tên sản phẩm
fun main(args: Array<String>) {
var dsSanPham= arrayOf("kotlin","java","c#","python","R")
for (item in dsSanPham)
println(item)
}
Đoạn code trên, chương trình sẽ duyệt tuần tự từng phần tử trong
mảng dsSanPham và xuất tên của chúng ra.
Ngoài ra ta cũng có thể duyệt theo vị trí, từ vị trí này ta có
thể xuất ra giá trị như sau:
fun main(args: Array<String>) {
var dsSanPham= arrayOf("kotlin","java","c#","python","R")
for (i in dsSanPham.indices)
println("Sản phâm thứ $i có tên "+dsSanPham[i])
}
Cuối cùng kotlin cũng hỗ trợ vừa lấy vị trí vừa lấy giá trị theo
cách sau:
fun main(args: Array<String>) {
var dsSanPham= arrayOf("kotlin","java","c#","python","R")
for ((index,value) in dsSanPham.withIndex())
{
println("Sản phẩm thứ $index có tên $value")
}
}
2. Vòng lặp While
Đây cũng là một trong những cấu trúc lặp khá phổ biến trong các
ngôn ngữ lập trình không riêng gì Kotlin, cú pháp:
while(expression)
{
statement
}
Các bước thực hiện:
·
B1: Expression được định trị
·
B2: Nếu kết quả là true thì statement
thực thi và quay lại B1
·
B3: Nếu kết quả là false thì thoát khỏi
vòng lặp while.
Để thoát vòng lặp: dùng break
Để di chuyển sớm qua lần lặp tiếp theo : dùng continue
Lưu ý: Lệnh trong while có thể không được thực hiện lần nào do ngay từ đầu expression không thỏa
Ví dụ: Viết chương trình tính 5!
fun main(args: Array<String>) {
var n:Int = 5
var gt:Int=1
var i:Int = 1
while (i <= n)
{
gt *= i
i++
}
println("$n! =$gt")
}
Như vậy, thông qua bài học này, chúng ta đã cùng nhau tìm hiểu về vòng lặp trong Kotlin. Cảm ơn các bạn đã đọc.
Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!
- Bài 1: Kotlin là gì? Ưu và nhược được của Kotlin
- Bài 2: Cài đặt Kotlin trên Android Studio
- Bài 3: Kiểu dữ liệu và khai báo biến trong Kotlin
- Bài 4: Keywords và toán tử trong Kotlin
- Bài 5: Câu lệnh rẽ nhánh trong Kotlin
- Bài 6: Vòng lặp trong Kotlin
- Bài 7: Xử lý ngoại lệ trong Kotlin
- Bài 8: Xử lý chuỗi trong Kotlin
- Bài 9: Collections trong Kotlin