1. ภาพรวมและความสำคัญของคำสั่ง continue
คำสั่ง continue
คืออะไร
คำสั่ง continue
เป็นคำสั่งควบคุมในภาษา C ที่ใช้ภายในกระบวนการวนซ้ำ (loop) เช่น for
, while
และ do-while
เมื่อเงื่อนไขที่กำหนดเป็นจริง คำสั่งนี้จะข้ามการทำงานที่เหลือในรอบนั้น และไปยังการทำซ้ำรอบถัดไปทันที ช่วยลดกระบวนการที่ไม่จำเป็นและทำให้โค้ดมีประสิทธิภาพมากขึ้น
ข้อดีและข้อเสียของคำสั่ง continue
แม้ว่า continue
จะมีประโยชน์ในการควบคุมลำดับของโปรแกรม แต่หากใช้ไม่ถูกวิธีอาจทำให้โค้ดอ่านยากขึ้น เช่น การใช้ continue
หลายจุดในลูปเดียวกันจะทำให้การทำงานของโปรแกรมซับซ้อนขึ้น ดังนั้นควรเลือกใช้ในสถานการณ์ที่เหมาะสมอย่างระมัดระวัง
2. โครงสร้างพื้นฐานของคำสั่ง continue
โครงสร้างพื้นฐานของ continue
คำสั่ง continue
มีโครงสร้างที่เรียบง่าย สามารถเขียนได้ดังนี้
continue;
เมื่อโปรแกรมรันถึงบรรทัดนี้ในลูป จะข้ามการทำงานที่เหลือของรอบปัจจุบันและเริ่มรอบถัดไปโดยทันที ช่วยให้หลีกเลี่ยงการทำงานที่ไม่จำเป็นและทำให้โปรแกรมมีประสิทธิภาพมากขึ้น
ความแตกต่างระหว่าง continue
และ break
คำสั่ง continue
และ break
เป็นคำสั่งควบคุมที่มีลักษณะคล้ายกัน แต่ใช้คนละวัตถุประสงค์ continue
จะข้ามไปยังรอบถัดไปโดยไม่จบลูป ส่วน break
จะออกจากลูปทันที ดังนั้น continue
เหมาะสำหรับการข้ามบางกรณีในลูป ขณะที่ break
ใช้เพื่อจบการวนซ้ำโดยสิ้นเชิง
3. วิธีการใช้คำสั่ง continue
พื้นฐาน
ตัวอย่างการใช้ continue
กับ for
loop
หากใช้ continue
ใน for
loop จะสามารถข้ามการทำงานบางรอบตามเงื่อนไขที่กำหนด เช่น ตัวอย่างนี้จะข้ามเมื่อ i
เป็นเลขคู่
#include <stdio.h>
int main() {
for(int i = 0; i < 10; i++) {
if(i % 2 == 0) {
continue; // ข้ามเมื่อ i เป็นเลขคู่
}
printf("%dn", i);
}
return 0;
}
ในโปรแกรมนี้ เมื่อ i
เป็นเลขคู่ คำสั่ง continue
จะทำงานและข้ามคำสั่ง printf
จึงจะแสดงเฉพาะเลขคี่เท่านั้น
ตัวอย่างการใช้ continue
กับ while
loop
สามารถใช้ continue
กับ while
loop ได้เช่นกัน เมื่อคำสั่ง continue
ทำงาน ลูปจะข้ามไปยังรอบถัดไป
#include <stdio.h>
int main() {
int i = 0;
while(i < 10) {
i++;
if(i % 2 == 0) {
continue; // ข้ามเมื่อ i เป็นเลขคู่
}
printf("%dn", i);
}
return 0;
}
ในตัวอย่างนี้ เมื่อ i
เป็นเลขคู่ คำสั่ง continue
จะทำให้ข้าม printf
ไปยังรอบถัดไป จึงแสดงเฉพาะเลขคี่
ตัวอย่างการใช้ continue
กับ do-while
loop
สามารถใช้ continue
กับ do-while
loop ได้เช่นกัน โดย do-while
จะทำงานอย่างน้อย 1 ครั้ง ซึ่งการทำงานของ continue
จะมีความแตกต่างเล็กน้อย
#include <stdio.h>
int main() {
int i = 0;
do {
i++;
if(i % 2 == 0) {
continue; // ข้ามเมื่อ i เป็นเลขคู่
}
printf("%dn", i);
} while(i < 10);
return 0;
}
ในโปรแกรมนี้ เมื่อ i
เป็นเลขคู่จะข้าม printf
เช่นกัน โดย do-while
จะทำซ้ำจนกว่า i
จะถึง 10

4. ตัวอย่างการประยุกต์ใช้คำสั่ง continue
การใช้ continue
ในลูปซ้อน (nested loop)
สามารถใช้ continue
ในลูปซ้อนได้ เช่น ในตัวอย่างนี้จะข้ามเมื่อ j
เท่ากับ 2
#include <stdio.h>
int main() {
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
if(j == 2) {
continue; // ข้ามเมื่อ j เท่ากับ 2
}
printf("i:%d, j:%dn", i, j);
}
}
return 0;
}
ในโปรแกรมนี้ หาก j
เท่ากับ 2 จะข้าม printf
ทำให้ไม่มีการแสดงผลสำหรับ j:2
ช่วยให้โปรแกรมทำงานได้อย่างมีประสิทธิภาพมากขึ้น
ตัวอย่างการข้ามการทำงานในลูปเมื่อเข้าเงื่อนไขเฉพาะ
คำสั่ง continue
มีประโยชน์เมื่อจำเป็นต้องข้ามการประมวลผลบางอย่างในลูป ตัวอย่างนี้จะข้ามค่าติดลบในอาเรย์และแสดงเฉพาะค่าบวก
#include <stdio.h>
int main() {
int data[10] = {1, -1, 2, -2, 3, -3, 4, -4, 5, -5};
for(int i = 0; i < 10; i++) {
if(data[i] < 0) {
continue; // ข้ามค่าติดลบ
}
printf("%dn", data[i]);
}
return 0;
}
โค้ดนี้จะข้ามค่าในอาเรย์ที่เป็นลบและแสดงเฉพาะค่าบวกเท่านั้น ทำให้การแสดงผลมีประสิทธิภาพมากขึ้น
5. ข้อควรระวังและแนวปฏิบัติที่ดีในการใช้ continue
ข้อเสียของการใช้ continue
มากเกินไปกับความสามารถในการอ่านโค้ด
แม้ว่า continue
จะสะดวก แต่ถ้าใช้บ่อยเกินไป โดยเฉพาะในลูปซ้อน อาจทำให้โค้ดอ่านยากขึ้น ไม่ทราบว่าเงื่อนไขใดถูกข้ามไปบ้าง ดังนั้นควรใช้ให้น้อยที่สุดเท่าที่จำเป็น
วิธีการอื่นแทนคำสั่ง continue
สามารถหลีกเลี่ยงการใช้ continue
ได้โดยออกแบบเงื่อนไขการตรวจสอบใน if
ตัวอย่างเช่น สามารถกลับทิศทางเงื่อนไขเพื่อประมวลผลเฉพาะกรณีที่ต้องการ
#include <stdio.h>
int main() {
for(int i = 0; i < 10; i++) {
if(i % 2 != 0) {
printf("%dn", i);
}
}
return 0;
}
ในโค้ดนี้ จะประมวลผลเฉพาะกรณีที่ i
เป็นเลขคี่เท่านั้น จึงไม่ต้องใช้ continue
และช่วยให้โค้ดอ่านง่ายขึ้น
แนวปฏิบัติที่ดีเพื่อป้องกันโค้ดซับซ้อนเกินไป
ขณะใช้ continue
ควรพิจารณาแนวทางเหล่านี้
- ลดการใช้
continue
ให้น้อยที่สุดเพื่อให้โค้ดเรียบง่าย - ถ้าจำเป็นต้องใช้ ให้ใส่คอมเมนต์ชี้แจงเหตุผลการใช้
continue
- พิจารณาวิธีอื่น เช่น การใช้เงื่อนไขหรือฟังก์ชัน เพื่อให้โค้ดเหมาะสมและอ่านง่ายขึ้น
6. แบบฝึกหัด: การเขียนโปรแกรมโดยใช้คำสั่ง continue
โจทย์ที่ 1: เขียนโปรแกรมแสดงเลข 1 ถึง 10 โดยข้ามค่าที่ผู้ใช้กำหนด
เขียนโปรแกรมแสดงเลข 1 ถึง 10 โดยข้ามค่าที่ผู้ใช้ป้อน ตัวอย่างเช่น ถ้าผู้ใช้ป้อน “3” ผลลัพธ์จะเป็น “1 2 4 5 6 7 8 9 10”
#include <stdio.h>
int main() {
int num;
printf("กรุณาใส่หมายเลขที่ต้องการข้าม (1-10): ");
scanf("%d", &num);
for(int i = 1; i <= 10; i++) {
if(i == num) {
continue; // ข้ามหมายเลขที่ผู้ใช้ป้อน
}
printf("%d ", i);
}
return 0;
}
ในโปรแกรมนี้จะใช้ continue
เพื่อข้ามค่าที่ผู้ใช้ระบุและแสดงเฉพาะตัวเลขที่เหลือ
โจทย์ที่ 2: เขียนโปรแกรมแสดงคู่ของ i
และ j
โดยข้าม j
ที่เป็น 3 ในลูปซ้อน
เขียนโปรแกรมโดยใช้ลูปซ้อนเพื่อแสดงค่าของ i
และ j
ยกเว้น j
ที่เป็น 3
#include <stdio.h>
int main() {
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
if(j == 3) {
continue; // ข้ามเมื่อ j เท่ากับ 3
}
printf("i:%d, j:%dn", i, j);
}
}
return 0;
}
ในโปรแกรมนี้ continue
จะทำงานเมื่อ j
เป็น 3 ซึ่งจะข้ามรอบนั้นในลูปย่อย
โจทย์ที่ 3: เขียนโปรแกรมจัดการข้อมูลในอาเรย์และข้ามค่าติดลบด้วย continue
เขียนโปรแกรมประมวลผลข้อมูลในอาเรย์ ข้ามค่าที่เป็นลบแล้วประมวลผลเฉพาะค่าที่เป็นบวก
#include <stdio.h>
int main() {
int data[10] = {1, -1, 2, -2, 3, -3, 4, -4, 5, -5};
for(int i = 0; i < 10; i++) {
if(data[i] < 0) {
continue; // ข้ามค่าติดลบ
}
printf("%dn", data[i]);
}
return 0;
}
ในโค้ดนี้จะข้ามค่าติดลบด้วย continue
ทำให้แสดงเฉพาะค่าที่ต้องการ
7. สรุป
คำสั่ง continue
เป็นเครื่องมือที่มีประโยชน์ในการควบคุมลูป เพื่อข้ามการทำงานบางรอบตามเงื่อนไข ช่วยให้โปรแกรมมีประสิทธิภาพมากขึ้น แต่การใช้มากเกินไปอาจทำให้โค้ดอ่านยาก ดังนั้นควรใช้เท่าที่จำเป็น และพิจารณาใช้วิธีอื่น เช่น เงื่อนไขหรือฟังก์ชัน แทนเมื่อเหมาะสม
ข้อควรจำเมื่อใช้ continue
อย่างมีประสิทธิภาพ
- ข้ามกระบวนการที่ไม่จำเป็นตามเงื่อนไข เพื่อควบคุมลูปอย่างมีประสิทธิภาพ
- ใช้เท่าที่จำเป็นเพื่อให้โค้ดอ่านง่ายและดูแลรักษาได้ดี
- พิจารณาทางเลือกอื่น เช่น การใช้เงื่อนไขหรือฟังก์ชัน เพื่อความเหมาะสม
เรียนรู้เพิ่มเติม
เพื่อเข้าใจ continue
อย่างลึกซึ้ง ควรศึกษาเปรียบเทียบกับคำสั่งควบคุมอื่นๆ เช่น break
และ return
รวมถึงทดลองใช้งานในสถานการณ์จริง เพื่อสัมผัสผลลัพธ์และประโยชน์ด้วยตัวเอง