ฉันเจอคำถามนี้เมื่อสองวินาทีก่อนและฉันดึงเนื้อหาบางส่วนออกจากที่นั่น: มีชื่อของโครงสร้าง 'break n' หรือไม่?
สิ่งนี้ดูเหมือนจะเป็นวิธีที่ซับซ้อนอย่างไม่จำเป็นสำหรับคนที่จะต้องสั่งให้โปรแกรมแยกย่อยซ้อนกันสำหรับลูป:
for (i = 0; i < 10; i++) {
bool broken = false;
for (j = 10; j > 0; j--) {
if (j == i) {
broken = true;
break;
}
}
if (broken)
break;
}
ฉันรู้ว่าหนังสือที่ชอบพูดประโยค goto เป็นมารและฉันไม่ชอบมันเลย แต่สิ่งนี้แสดงให้เห็นถึงข้อยกเว้นของกฎหรือไม่?
ฉันกำลังมองหาคำตอบที่จัดการกับ n-ซ้อนสำหรับลูป
หมายเหตุ:ไม่ว่าคุณจะตอบว่าใช่, ไม่, หรือที่ใดที่หนึ่งในระหว่าง, คำตอบที่ใกล้เคียงอย่างสมบูรณ์จะไม่ได้รับการต้อนรับ. โดยเฉพาะถ้าคำตอบคือไม่ให้เหตุผลที่ดีที่ถูกต้องว่าทำไม (ซึ่งอยู่ไม่ไกลเกินไปจากระเบียบของ Exchange Exchange)
goto
: goto (การอ้างอิง C #) - "คำสั่ง goto ยังเป็นประโยชน์ในการออกจากลูปที่ซ้อนกันอย่างลึกซึ้ง"
goto
จำเป็นต้องใช้จริงในสวิตช์ C # เพื่อเลื่อนผ่านไปยังอีกกรณีหนึ่งหลังจากรันโค้ดใด ๆ ภายในเคสแรก นั่นเป็นกรณีเดียวที่ฉันได้ใช้ข้ามไป
for (j = 10; j > 0 && !broken; j--)
ดังนั้นคุณไม่จำเป็นต้องมีbreak;
คำสั่ง หากคุณเลื่อนการประกาศbroken
ไปยังก่อนที่ลูปด้านนอกจะเริ่มต้นถ้านั่นสามารถเขียนได้ตามfor (i = 0; i < 10 && !broken; i++)
นั้นฉันคิดว่าไม่break;
จำเป็น