บล็อกคำสั่ง Java
ฉันยังจำได้ว่าเมื่อฉันอ่าน C, C ++ และ Java Programming Books เป็นครั้งแรกมีบล็อกคำสั่งแนะนำ แต่ฉันไม่เข้าใจว่าบล็อกคำสั่งคืออะไร "คอลเลกชันโค้ด" ยังบอกด้วยว่าคำสั่งที่มีฟังก์ชั่นที่คล้ายกันควรจัดระเบียบร่วมกันในบล็อกคำสั่งแบบฟอร์มแล้วคั่นด้วยบล็อกคำสั่งอื่น ๆ ด้วยบรรทัดว่าง แต่นี่เป็นเพียงบล็อกคำแถลงในความเข้าใจของมนุษย์ไม่ใช่บล็อกคำสั่งในความหมายที่แท้จริงของภาษาการเขียนโปรแกรม
ในความเข้าใจของฉันคำจำกัดความของโปรแกรมควรเป็นชุดของชุดคำสั่งที่เกี่ยวข้องที่มีขอบเขตตัวแปรเดียวกัน ดูเหมือนว่ามันควรจะถูกล้อมรอบด้วย {} เช่นตรรกะในโครงสร้างการควบคุม ฉันคิดว่าจุดที่สำคัญที่สุดคือขอบเขตของตัวแปรนั่นคือถ้าสามารถใช้ตัวแปรท้องถิ่นเดียวกันได้มันเป็นบล็อกคำสั่งในความหมายของโปรแกรม ลองมาดูตัวอย่าง:
@Override บูลีนสาธารณะ onoptionsitemselected (รายการ menuitem) {switch (item.getItemid ()) {case menu_goto_fileant: เจตนา i = ความตั้งใจใหม่ (); i.setClass (นี่, fileantactivity.class); startactivity (i); หยุดพัก; case menu_test_linearlayout: i.setClass (นี่, linearlayouttest.class); startactivity (i); หยุดพัก; ค่าเริ่มต้น: break; } return true; - สำหรับคำสั่งกรณีที่สองตัวแปรที่กำหนดไว้ในกรณีก่อนหน้านี้ยังสามารถใช้งานได้ดังนั้นสวิตช์ทั้งหมด () {} เป็นบล็อกคำสั่ง
แต่ถ้าคุณเพิ่มหมายจับบล็อกคำสั่งลงในแต่ละคำสั่งเคสมันจะแตกต่างกัน:
@Override บูลีนสาธารณะ onoptionsitemselected (รายการ menuitem) {switch (item.getItemid ()) {case menu_goto_fileant: {เจตนา i = ความตั้งใจใหม่ (); i.setClass (นี่, fileantactivity.class); startactivity (i); หยุดพัก; } case menu_test_linearlayout: {เจตนา i = intent ใหม่ (); i.setClass (นี่, linearlayouttest.class); startactivity (i); หยุดพัก; } เริ่มต้น: break; } return true; - การเพิ่ม {} คั่นคำสั่งกรณีทั้งสองและฟอร์มบล็อกคำสั่งสองบล็อก พวกเขามีขอบเขตตัวแปรของตัวเองและไม่ส่งผลกระทบต่อกันและกัน แม้ว่าพวกเขาจะใช้ชื่อเดียวกัน แต่ก็ไม่สำคัญว่าพวกเขาจะกำหนดอีกครั้ง
จุดประสงค์ในการอธิบายสิ่งเหล่านี้คือการใช้ {} ให้มากที่สุดเท่าที่จะเป็นไปได้ในการสร้างบล็อกคำสั่งจริง ข้อได้เปรียบที่ใหญ่ที่สุดคือมันสามารถสร้างขอบเขตตัวแปรและหลีกเลี่ยงขอบเขตของตัวแปรที่มีขนาดใหญ่เกินไปซึ่งช่วยเพิ่มความสามารถในการอ่านและลดความเป็นไปได้ของข้อผิดพลาด
ขอบคุณสำหรับการอ่านฉันหวังว่ามันจะช่วยคุณได้ ขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!