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

var ในลูป for

อนุมานชนิดข้อมูลของตัวแปรในลูป

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

var ในลูป

var ใช้เป็นตัวแปรของลูปได้อย่างเป็นธรรมชาติทั้งในลูป for แบบดั้งเดิมและลูป for-each แบบเพิ่มความสามารถ คอมไพเลอร์จะอนุมานชนิดจากบริบทของลูป

ตัวนับลูป for แบบดั้งเดิม

ในลูป for แบบดั้งเดิม var จะอนุมานชนิดของตัวนับจากค่าเริ่มต้น ในที่นี้ var i = 0 จะอนุมานเป็น int

public class Main {
    public static void main(String[] args) {
        for (var i = 0; i < 5; i++) {
            System.out.println("i = " + i);
        }
    }
}

for-each กับรายการ

ในลูป for แบบเพิ่มความสามารถ var จะอนุมานชนิดของสมาชิกจากกลุ่มข้อมูล ในที่นี้ name แต่ละตัวเป็น String

import java.util.List;

public class Main {
    public static void main(String[] args) {
        var names = List.of("Ann", "Ben", "Cara");
        for (var name : names) {
            System.out.println(name);
        }
    }
}

การวนซ้ำผ่านอาร์เรย์

วิธีเดียวกันนี้ใช้กับอาร์เรย์ได้เช่นกัน โดยชนิดของสมาชิกจะถูกอนุมานจากชนิดของอาร์เรย์

public class Main {
    public static void main(String[] args) {
        var scores = new int[]{90, 85, 78};
        var total = 0;
        for (var s : scores) {
            total += s;
        }
        System.out.println("Total: " + total);
    }
}

การวนซ้ำรายการในแมป

เมื่อวนซ้ำรายการในแมป var จะช่วยให้คุณไม่ต้องเขียนชนิด Map.Entry ที่ยืดยาว

import java.util.Map;

public class Main {
    public static void main(String[] args) {
        var ages = Map.of("Ann", 30, "Ben", 25);
        for (var entry : ages.entrySet()) {
            System.out.println(entry.getKey() + " -> " + entry.getValue());
        }
    }
}

เมธอดของสมาชิกที่อนุมานได้

เนื่องจากทราบชนิดของสมาชิกแล้ว คุณจึงเรียกใช้เมธอดของสมาชิกภายในลูปได้ โดยมีการตรวจสอบอย่างสมบูรณ์ขณะคอมไพล์

import java.util.List;

public class Main {
    public static void main(String[] args) {
        var words = List.of("red", "green");
        for (var w : words) {
            System.out.println(w.toUpperCase() + " (" + w.length() + ")");
        }
    }
}

ลูปซ้อนกัน

คุณสามารถใช้ var ในลูปซ้อนกันได้เช่นกัน ทำให้การประกาศตัวนับแต่ละตัวสั้นลง

public class Main {
    public static void main(String[] args) {
        for (var i = 1; i <= 3; i++) {
            for (var j = 1; j <= 3; j++) {
                System.out.print(i * j + " ");
            }
            System.out.println();
        }
    }
}

การนับถอยหลัง

ชนิดที่อนุมานได้จะยึดตามตัวกำหนดค่าเริ่มต้น ดังนั้นลูปที่ลดค่าลงจึงทำงานในลักษณะเดียวกัน

public class Main {
    public static void main(String[] args) {
        for (var n = 5; n >= 1; n--) {
            System.out.println(n);
        }
        System.out.println("Liftoff");
    }
}

var กับตัวนับชนิดจำนวนเต็มขนาดยาว

หากต้องใช้ตัวนับชนิด long ให้ใช้ค่าคงที่ชนิด long ในตัวกำหนดค่าเริ่มต้น เพื่อให้ var อนุมานชนิดที่มีขนาดใหญ่กว่าได้

public class Main {
    public static void main(String[] args) {
        var sum = 0L;
        for (var i = 1L; i <= 1000000L; i++) {
            sum += i;
        }
        System.out.println(sum);
    }
}

ความอ่านง่ายในลูป

ลูปเป็นหนึ่งในตำแหน่งที่เหมาะสมที่สุดสำหรับใช้ var เพราะเห็นชนิดได้อย่างชัดเจนจากชุดข้อมูลหรือตัวกำหนดค่าเริ่มต้น โค้ดจึงกระชับและปลอดภัย

import java.util.List;

public class Main {
    public static void main(String[] args) {
        var temps = List.of(20, 22, 19, 25);
        var max = Integer.MIN_VALUE;
        for (var t : temps) {
            if (t > max) max = t;
        }
        System.out.println("Max: " + max);
    }
}

ดัชนีและค่าพร้อมกัน

คุณสามารถใช้ลูปแบบมีดัชนีที่คุ้นเคยร่วมกับ var เพื่ออ่านทั้งตำแหน่งและค่าจากรายการได้

import java.util.List;

public class Main {
    public static void main(String[] args) {
        var items = List.of("a", "b", "c");
        for (var i = 0; i < items.size(); i++) {
            System.out.println(i + ": " + items.get(i));
        }
    }
}

ตรวจสอบอย่างรวดเร็ว

ใน for (var name : names) ซึ่ง names เป็น List<String> นั้น name มีชนิดใด

ทบทวน

คุณได้เรียนรู้การใช้ var ในลูปดังนี้:

  • ลูปแบบคุ้นเคย: อนุมานชนิดของ ตัวนับ จากตัวกำหนดค่าเริ่มต้น
  • การวนซ้ำสมาชิก: อนุมานชนิดของ สมาชิก จากชุดข้อมูลหรืออาร์เรย์
  • ช่วยลดการเขียนชนิดที่ยืดยาว เช่น Map.Entry
  • ใช้ค่าคงที่ชนิด long เช่น 0L สำหรับตัวนับชนิด long
  • ลูปเป็นตำแหน่งที่เหมาะสมอย่างยิ่งสำหรับใช้ var

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

บทเรียน “var ในลูป for” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “var ในลูป for”

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

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

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

บทเรียน “var ในลูป for” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การใช้ var กับตัวแปรภายใน
  2. เมื่อ var ช่วยให้อ่านง่าย
  3. var ในลูป for
  4. ข้อจำกัดของ var
← กลับไปที่ Java Academy