Lập trình Kotlin - Vòng lặp do while
Vòng lặp do while trong Kotlin
trong bài này chúng ta qua một cấu trúc tương tự đó là do…while
Cú pháp vòng lặp do…while:
do
{
statement
}
while(expression)
Các bước thực hiện:
−B1:Statement được thực hiện
−B2:Expression được định trị.
−Nếu expression là true thì quay lại bước 1
−Nếu expression là false thì thoát khỏi vòng lặp.
Để 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 do…while chắc chắn được thực hiện ít nhất một lần.
Lưu đồ hoạt động:
Ví dụ 1: Viết chương trình tính 5 giai thừa
fun main(args: Array) {
var n:Int = 5
var gt:Int=1
var i:Int = 1
do
{
gt *= i
i++
}while (i<=n)
println("$n! =$gt")
}
Giải thích chi tiết quá trình chạy:
Khởi tạo: n=5; gt=1, i=1
Lần 1: gt=gt*i=1*1=1
i++=> i=i+1=1+1=2
Kiểm tra i<=n <=>2<=5=>đúng
Lần 2: gt=gt*i=1*2=2
i++=>i=i+1=2+1=3
Kiểm tra i<=n <=> 3<=5=>đúng
Lần 3: gt=gt*i=2*3=6
i++=>i=i+1=3+1=4
Kiểm tra i<=n <=> 4<=5=>đúng
Lần 4: gt=gt*i=6*4=24
i++=>i=i+1=4+1=5
Kiểm tra i<=n <=> 5<=5=>đúng
Lần 5: gt=gt*i=24*5=120
i++=>i=i+1=5+1=6
Kiểm tra i<=n <=> 6<=5=>sai=>ngừng do while
Kết thúc chương trình ta được giai thừa =120
Tương tự như các vòng lặp khác, do..while cũng có thể kết hợp lồng ghép các vòng lặp với nhau:
Ví dụ 2: Viết chương trình kiểm tra 1 năm bất kỳ có phải năm nhuần hay không (Năm nhuần là năm chia hết cho 4 nhưng không chia hết cho 100 hoặc chia hết cho 400). Chương trình bắt buộc phải nhập năm >=0, nếu nhập sai bắt nhập lại cho tới khi nào nhập đúng, kết thúc chương trình cho phép người dùng lựa chọn tiếp tục hay không:
fun main(args: Array) {
var year:Int=0
var s:String?
println("Chương trình kiểm tra năm nhuần:")
do
{
println("Nhập 1 năm:")
s= readLine()
while (s==null || s.toInt()<0)
{
println("Nhập sai năm, nhập lại:")
s= readLine()
}
year=s.toInt()
if(year%4==0&&year%100!=0 || year%400==0)
{
println("Năm $year là năm nhuần")
}
else
{
println("Năm $year ko phải là năm nhuần")
}
print("Tiếp không?(c/k):")
s= readLine()
if(s=="k")
break;
}while (true)
println("Tạm biệ
Chạy chương trình và nhập các giá trị sau để xem kết quả:
Chương trình kiểm tra năm nhuần:
Nhập 1 năm:
-4
Nhập sai năm, nhập lại:
2000
Năm 2000 là năm nhuần
Tiếp không?(c/k):c
Nhập 1 năm:
2015
Năm 2015 ko phải là năm nhuần
Tiếp không?(c/k):kTạm biệt