TL; DR ทำสิ่งที่อ่านได้ดีที่สุดในสถานการณ์เฉพาะของคุณ
ลองมาตัวอย่างนี้:
for ( int i = 1; i < array.length; i++ )
{
if(something) break;
// perform operations
}
ในกรณีนี้เราไม่ต้องการให้โค้ดใด ๆ ใน for for loop ทำงานหากsomething
เป็นจริงดังนั้นการย้ายการทดสอบsomething
ไปยังฟิลด์เงื่อนไขนั้นสมเหตุสมผล
for ( int i = 1; i < array.length && !something; i++ )
จากนั้นอีกครั้งขึ้นอยู่กับว่าsomething
สามารถตั้งค่าไว้ที่true
หน้าลูป แต่ไม่ได้อยู่ในลูปนี่อาจทำให้มีความชัดเจนมากขึ้น:
if(!something)
{
for ( int i = 1; i < array.length; i++ )
{...}
}
ลองจินตนาการถึงสิ่งนี้:
for ( int i = 1; i < array.length; i++ )
{
// perform operations
if(something) break;
// perform more operations
}
เรากำลังส่งข้อความที่ชัดเจนมากที่นั่น หากsomething
กลายเป็นจริงในขณะที่การประมวลผลอาร์เรย์แล้วละทิ้งการดำเนินการทั้งหมด ณ จุดนี้ ในการย้ายเช็คไปยังฟิลด์เงื่อนไขที่คุณต้องทำ:
for ( int i = 1; i < array.length && !something; i++ )
{
// perform operations
if(!something)
{
// perform more operations
}
}
เนื้อหา "ข้อความ" กลายเป็นโคลนแล้วและเรากำลังตรวจสอบเงื่อนไขความล้มเหลวในสองแห่ง - จะเกิดอะไรขึ้นถ้าเงื่อนไขความล้มเหลวเปลี่ยนไปและเราลืมสถานที่แห่งใดแห่งหนึ่ง
แน่นอนว่ามีรูปทรงที่แตกต่างกันมากมายสำหรับห่วงและสภาพอาจเป็นไปได้ทั้งหมดนี้มีความแตกต่างของตัวเอง
เขียนรหัสเพื่อให้อ่านได้ดี (ซึ่งเห็นได้ชัดว่าเป็นอัตนัย) และรัดกุม ด้านนอกของชุดเข้มงวดของการเข้ารหัสแนวทางทั้งหมด "กฎ" มีข้อยกเว้น เขียนสิ่งที่คุณรู้สึกว่าเป็นการตัดสินใจที่ดีที่สุดและลดโอกาสที่จะเกิดข้อผิดพลาดในอนาคต
condition
พิเศษ