คอมไพเลอร์ Java ไม่อนุญาตให้ละทิ้งตัวแปรท้องถิ่นที่ยังไม่ได้กำหนดค่า เมื่อตัวแปรท้องถิ่นถูกเตรียมใช้งานภายในบล็อคแบบมีเงื่อนไข มีความเป็นไปได้ 3 อย่างที่อาจเกิดขึ้น –
-
โค้ดคอมไพล์สำเร็จหากมีการระบุค่าในบล็อคแบบมีเงื่อนไขและเงื่อนไขที่กำหนดเป็นจริง
-
รหัสทำให้เกิดข้อผิดพลาดในการรวบรวมหากมีการระบุตัวแปร (แทนที่จะเป็นค่า) ในบล็อกแบบมีเงื่อนไขและเงื่อนไขเป็นจริง
-
รหัสแสดงข้อผิดพลาดในการรวบรวมหากเงื่อนไขที่ต้องตรวจสอบเป็นเท็จ
หากตัวแปรโลคัลถูกตั้งค่าเริ่มต้นเป็นค่าเริ่มต้นนอกบล็อคเงื่อนไขในโค้ด จะไม่มีข้อผิดพลาดใดๆ และโค้ดคอมไพล์สำเร็จ
ตัวอย่าง
public class Demo{ public static void main(String args[]){ int i = 35; int j = 0; if (i > 32){ j = i + 11; } System.out.println("The value is: " + j); } }
ผลลัพธ์
The value is: 46
คลาสชื่อ Demo มีฟังก์ชันหลัก ในที่นี้ มีการกำหนดตัวแปร 2 ตัว และหากตัวแปรมีค่ามากกว่าจำนวนที่ระบุ ค่าอื่นจะถูกเพิ่มเข้าไปและบล็อก "ถ้า" จะปิดลง จากนั้น ผลลัพธ์จะถูกพิมพ์ลงบนคอนโซล