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