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

ลูป for: รูปแบบทั้งหมด

ลูปแบบดั้งเดิม แบบ while แบบไม่สิ้นสุด และแบบ range

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

Go มีลูปเพียงแบบเดียว

Go มีลูป for เพียงแบบเดียว — ไม่มี while และไม่มี do-while คีย์เวิร์ด for รองรับรูปแบบการวนซ้ำทั้งหมดผ่านรูปแบบต่าง ๆ

ลูป for แบบคลาสสิกสไตล์ C

ลูปแบบสามส่วนตามธรรมเนียม:

for i := 0; i < 5; i++ {
    fmt.Println(i)
}

ลูปสไตล์ while

ละเว้นส่วนเริ่มต้นและส่วนหลังเพื่อสร้างลูปที่ทำงานคล้าย while:

n := 1
for n < 100 {
    n *= 2
}

ลูปไม่สิ้นสุด

ละเว้นทุกส่วนเพื่อสร้างลูปไม่สิ้นสุด (ต้องใช้ break หรือ return เพื่อออกจากลูป):

for {
    msg := receive()
    if msg == "quit" {
        break
    }
    process(msg)
}

การใช้ range กับสไลซ์

range จะวนซ้ำผ่านสไลซ์ โดยคืนค่าดัชนีและค่า:

fruits := []string{"apple", "banana", "cherry"}
for i, fruit := range fruits {
    fmt.Printf("%d: %s\n", i, fruit)
}

การใช้ range กับแมป

range ที่ใช้กับแมปจะคืนค่าคู่คีย์-ค่า (ลำดับการวนซ้ำเป็นแบบสุ่ม):

scores := map[string]int{"Alice": 90, "Bob": 85}
for name, score := range scores {
    fmt.Printf("%s: %d\n", name, score)
}

การใช้ range กับสตริง

การวนซ้ำผ่านสตริงจะให้ค่ารูน (จุดรหัสยูนิโค้ด) ไม่ใช่ไบต์:

for i, r := range "Go!" {
    fmt.Printf("index %d: %c\n", i, r)
}

การใช้ range กับแชนเนล

การใช้ range กับแชนเนลจะอ่านค่าจนกว่าแชนเนลจะถูกปิด:

ch := make(chan int, 3)
ch <- 1; ch <- 2; ch <- 3
close(ch)
for v := range ch {
    fmt.Println(v)
}

break และ continue

break จะออกจากลูปชั้นในสุด ส่วน continue จะข้ามไปยังการวนซ้ำถัดไป:

for i := 0; i < 10; i++ {
    if i%2 == 0 {
        continue // skip even numbers
    }
    if i > 7 {
        break    // stop at 7
    }
    fmt.Println(i)
}

break ที่มีป้ายกำกับ

ป้ายกำกับช่วยให้คุณออกจากลูปภายนอกได้จากภายในลูปภายใน:

outer:
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        if i+j == 3 {
            break outer
        }
    }
}

คำถามทบทวน

คุณเขียนลูปไม่สิ้นสุดใน Go อย่างไร

สรุป: ลูป for

ลูป for ของ Go รองรับรูปแบบการวนซ้ำทั้งหมด:

  • แบบคลาสสิก: for i := 0; i < n; i++
  • สไตล์ while: for condition
  • แบบไม่สิ้นสุด: for {}
  • แบบ range: ใช้กับสไลซ์ แมป สตริง และแชนเนล
  • break/continue พร้อมป้ายกำกับที่ไม่บังคับสำหรับลูปซ้อนกัน

ถัดไป: คำสั่ง switch ใน Go

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

บทเรียน “ลูป for: รูปแบบทั้งหมด” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ลูป for: รูปแบบทั้งหมด”

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

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

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

บทเรียน “ลูป for: รูปแบบทั้งหมด” ใช้เวลานานแค่ไหน

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

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

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

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

  1. คำสั่ง if และนิพจน์เริ่มต้น
  2. ลูป for: รูปแบบทั้งหมด
  3. คำสั่ง switch ใน Go
  4. break, continue และป้ายกำกับ
← กลับไปที่ Go Academy