Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ทำไมการละเลย curly braces ใน C/C++ ถึงถือเป็น bad practice?


ใน C++ เราสามารถละเลย curly braces หลัง if-else statements หรือหลัง loop ใดๆ ได้ หากเราไม่ใช้ curly braces จะมีเพียงคำสั่งเดียวหลัง if-else หรือ loop ที่ถูกนับว่าอยู่ในบล็อกนั้น ตัวอย่าง -

if(condition) {
    Line 1
    Line 2
}
if(condition)
    Line 1
    Line 2

ในกรณีแรก Line1 และ Line2 ทั้งคู่อยู่ใน if block แต่ในกรณีที่สอง Line1 อยู่ใน if block แต่ Line2 ไม่อยู่ใน if block ดังนั้นเราสามารถละเลย curly braces ได้ก็ต่อเมื่อมีคำสั่งเดียวภายใต้ if-else หรือ loop

บางครั้งเพื่อการ debug เราแค่ comment บรรทัดหนึ่ง ใช้วิธีนี้ตรวจสอบผลลัพธ์โดยไม่มีคำสั่งนั้น ในขณะนั้น if-else หรือ loops ที่ไม่มี braces จะทำให้เกิดปัญหา ตัวอย่าง -

if(condition) {
    Line 1
}
Line2
if(condition)
    Line 1
Line 2

ที่นี่ทั้งสองกรณี Line1 อยู่ใน if block แต่ Line2 ไม่อยู่ใน if block ดังนั้นถ้าเงื่อนไขล้มเหลว หรือเป็นจริง Line2 จะถูกรันเสมอ ตอนนี้ถ้าสถานการณ์เป็นแบบด้านล่างเพื่อการ debug แล้วอาจก่อให้เกิดปัญหา

if(condition)
    //Line 1
    Line 2

ถ้า Line1 ถูก comment เราคิดว่ามันโอเค แต่ในกรณีนี้ คอมไพเลอร์คิดว่า Line2 อยู่ใน if block ซึ่งผิด ถ้าเราใช้ braces จะไม่มีปัญหา