19 มี.ค. 2022 เวลา 08:37 • ไอที & แก็ดเจ็ต
003: ลูปในภาษาซี: จริงทำ-เท็จออก
loop ในภาษา C เงื่อนไขการวนซ้ำคือ ถ้าเป็นจริงจะวนซ้ำต่อ ถ้าเป็นเท็จ จะออกจากลูป ดังนั้นจึงมีหลักการท่องจำง่ายๆ ว่า "จริงทำ-เท็จออก"
ทีนี้จากโพสก่อน เราทราบว่าสามารถแปลงลูปต่าง ๆ ในภาษา C ไปเป็นรูปแบบทั่วไปได้เสมอ เช่น
while(condition)
doSomething();
ถ้าจะแปลงเป็นรูปทั่วไป
while(1) {
if(!condition)
break;
doSomething();
}
รูปทั่วไปนี้ จะเปิดโอกาสให้ condition อยู่ที่ต้น หรือกลาง หรือท้ายลูปก็ได้ (ดูโพส 002) แต่ในกรณีที่ condition อยู่ตอนต้นเช่นนี้โดยปกติเราก็ไม่มีความจำเป็นต้องเขียนในรูปทั่วไป เพราะมันเยิ่นเย้อกว่า
แต่จุดสำคัญที่อยากให้สังเกตคือ: การแปลง loop ไปเป็นรูปทั่วไป โดยเพิ่มคำสั่ง if กับ break ลงไปนั้น condition ของ if จะต้องใส่ ! (not) เพื่อกลับค่า boolean เสมอ
เนื่องจาก เงื่อนไขที่ใส่ใน loop ปกติคือ "จริงทำ-เท็จออก"
แต่เงื่อนไขที่ใส่ใน if จะเป็นว่า "หากเป็นจริง เราจะ break ออกจาก loop" นั้นก็คือ "จริงออก-เท็จทำ" นั่นเอง
นี่คือข้อควรระวังของเงื่อนไขใน loop ปกติ กับ loop ที่ใช้ if ... break ที่จำเป็นจะต้องกลับเงื่อนไขกันครับ
โฆษณา