[polldaddy poll=9764234]
Ở bài 13 chúng ta đã hiểu được cấu trúc lặp while, 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
[code language=”groovy”]
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")
}
[/code]
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:
[code language=”groovy”]
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ệt")
}
[/code]
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 |
Như vậy tới đây Tui đã hướng dẫn xong vòng lặp do…while trong Kotlin, các bạn chú ý học kỹ và hiểu được nó thông qua các ví dụ ở trên nhé. Đặc biệt nắm được cách thức vận hành của do..while để có thể áp dụng tốt vào các dự án thực tế của mình.
Các bạn có thể tải source code bài này ở đây: http://www.mediafire.com/file/zehz2biw992vxeh/HocDoWhile.rar
Hẹn gặp các bạn ở những bài tiếp theo
Chúc các bạn thành công!
Trần Duy Thanh (http://ssoftinc.com/)