0Pricing
Kotlin Academy · บทเรียน

while และ do-while: ควรใช้แบบใด

เขียนลูป while และ do-while พร้อมทำความเข้าใจกรณีการใช้งาน

while และ do-while: ควรใช้แบบใด เป็นบทเรียน Kotlin Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน

ลูป while สองรูปแบบ

Kotlin มีทั้ง while ซึ่งตรวจสอบก่อน และ do-while ซึ่งตรวจสอบภายหลัง ความแตกต่างคือ do-while จะทำงานส่วนเนื้อหาอย่างน้อยหนึ่งครั้งเสมอ

ลูป while พื้นฐาน

while จะตรวจสอบเงื่อนไขก่อนการวนซ้ำแต่ละครั้ง หากเงื่อนไขเป็นเท็จตั้งแต่แรก ส่วนเนื้อหาจะไม่ทำงานเลย

fun main() {
    var count = 0
    while (count < 3) {
        println("count = $count")
        count++
    }
}

ลูป do-while พื้นฐาน

do-while จะทำงานส่วนเนื้อหาก่อน แล้วจึงตรวจสอบเงื่อนไข ส่วนเนื้อหาจะทำงานอย่างน้อยหนึ่งครั้งเสมอ

fun main() {
    var n = 10
    do {
        println("n = $n")
        n--
    } while (n > 7)
}

การอ่านจนกว่าจะพบตัวจบ

ลูป while เหมาะอย่างยิ่งเมื่อคุณไม่ทราบว่าต้องวนซ้ำกี่ครั้ง เช่น อ่านข้อมูลไปจนกว่าจะพบค่าตัวจบ

fun main() {
    val data = listOf(3, 7, 0, 9)
    var i = 0
    while (i < data.size && data[i] != 0) {
        println("got ${data[i]}")
        i++
    }
    println("stopped at index $i")
}

การค้นหาในรายการ

ใช้ while สำหรับการค้นหาที่หยุดก่อนครบทุกสมาชิก โดยหยุดทันทีที่ตรงตามเงื่อนไข

fun main() {
    val nums = listOf(2, 4, 7, 8, 10)
    var i = 0
    while (i < nums.size && nums[i] % 2 == 0) i++
    println("first odd at index $i = ${nums[i]}") // 2 = 7
}

do-while สำหรับตรวจสอบอินพุต

ใช้ do-while เมื่อคุณต้องดำเนินการบางอย่าง เช่น ขอข้อมูล อ่านข้อมูล หรือทดลองทำ ก่อนจึงจะตรวจสอบความสำเร็จได้

fun main() {
    val validInputs = listOf("y", "n", "y")
    var idx = 0
    var input: String
    do {
        input = validInputs[idx++]
        println("user typed: $input")
    } while (input != "n" && idx < validInputs.size)
}

ตัวนับพร้อมการลดค่า

ลูป while จัดการตัวนับที่ลดค่าลงจนถึงศูนย์ได้อย่างเป็นระเบียบ

fun main() {
    var lives = 3
    while (lives > 0) {
        println("Lives left: $lives")
        lives--
    }
    println("Game over")
}

ลูปไม่สิ้นสุดพร้อม break

ใช้ while (true) ร่วมกับ break สำหรับโค้ดรูปแบบลูปเหตุการณ์ที่มีเงื่อนไขออกซับซ้อน

fun main() {
    val items = listOf(1, 2, 3, -1, 4)
    var i = 0
    while (true) {
        if (i >= items.size || items[i] < 0) break
        println("ok: ${items[i]}")
        i++
    }
}

เปรียบเทียบ while กับ for

หากทราบจำนวนรอบล่วงหน้า ให้เลือกใช้ for หากจำนวนรอบขึ้นอยู่กับสถานะขณะทำงาน ให้ใช้ while

fun main() {
    // for: known bounds
    for (i in 1..3) print("$i ")
    println()
    // while: state-driven
    var n = 1
    while (n <= 3) { print("$n "); n++ }
    println()
}

ลูปพร้อมตัวแปรสองตัว

ลูป while สามารถติดตามตัวแปรหลายตัวได้ ซึ่งมีประโยชน์กับขั้นตอนวิธีอย่างฟีโบนักชี

fun main() {
    var a = 0
    var b = 1
    while (b < 50) {
        print("$b ")
        val next = a + b
        a = b
        b = next
    }
    println() // 1 1 2 3 5 8 13 21 34
}

do-while ทำงานหนึ่งครั้งเสมอ

แม้เงื่อนไขจะเป็นเท็จตั้งแต่เริ่มต้น ส่วนเนื้อหาของ do-while ก็จะทำงานหนึ่งครั้ง บางครั้งนี่คือสิ่งที่คุณต้องการพอดี แต่บางครั้งก็อาจเป็นข้อผิดพลาด

fun main() {
    var x = 100
    do {
        println("x = $x") // prints once
        x--
    } while (x > 1000) // false immediately
}

ตรวจสอบความเข้าใจ

ลูปใดรับประกันว่าส่วนเนื้อหาจะทำงานอย่างน้อยหนึ่งครั้งโดยไม่ขึ้นกับเงื่อนไข

สรุปทบทวน

ใช้ while เมื่อจำนวนรอบขึ้นอยู่กับเงื่อนไขขณะทำงาน ใช้ do-while เมื่อส่วนเนื้อหาต้องทำงานอย่างน้อยหนึ่งครั้ง เช่น การตรวจสอบความถูกต้องหรือการลองใหม่ หากทราบจำนวนรอบ ให้เลือกใช้ for

คำถามที่พบบ่อย

บทเรียน “while และ do-while: ควรใช้แบบใด” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “while และ do-while: ควรใช้แบบใด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “while และ do-while: ควรใช้แบบใด”

เขียนลูป while และ do-while พร้อมทำความเข้าใจกรณีการใช้งาน คุณปฏิบัติ Kotlin Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “while และ do-while: ควรใช้แบบใด” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Kotlin Academy นี้ได้ไหม

ได้ บทเรียน Kotlin Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. วนซ้ำด้วย for บนช่วงและคอลเลกชัน
  2. while และ do-while: ควรใช้แบบใด
  3. forEach, repeat และ forEachIndexed
  4. break, continue และการคืนค่าด้วยป้ายกำกับ
← กลับไปที่ Kotlin Academy