แนะนำ, 2024

ตัวเลือกของบรรณาธิการ

ความแตกต่างระหว่างการหยุดพักและต่อ

ทั้ง "หยุด" และ "ดำเนินการต่อ" เป็นคำสั่ง 'ข้าม' ที่โอนการควบคุมโปรแกรมไปยังส่วนอื่นของโปรแกรม C ++ รองรับคำสั่งกระโดดสี่คำสั่งคือ 'return', 'goto', 'break' และ 'Continue' Java รองรับคำสั่งกระโดดสามประโยค 'break' 'Continue' และ 'return' ความแตกต่างที่สำคัญระหว่างการหยุดและการดำเนินการต่อคือการหยุดที่ใช้สำหรับการเลิกจ้างลูปทันทีในขณะที่ให้ยกเลิกการทำซ้ำในปัจจุบันและดำเนินการควบคุมต่อไปที่การทำซ้ำครั้งต่อไปของลูป ลองศึกษาความแตกต่างระหว่างการหยุดพักและดำเนินการต่อในบริบทของ C ++ และ Java

ตารางเปรียบเทียบ:

พื้นฐานสำหรับการเปรียบเทียบหยุดต่อ
งาน
มันจะยุติการประมวลผลของการวนซ้ำที่เหลืออยู่ของลูปมันจะยุติเฉพาะการวนซ้ำปัจจุบันของลูป
ควบคุมหลังจากหยุด / ต่อ'break' จะกลับมาควบคุมโปรแกรมต่อจนถึงจุดสิ้นสุดของลูป'ดำเนินการต่อ' ควบคุมการทำงานของโปรแกรมต่อไปในรอบถัดไปของการวนซ้ำที่ล้อมรอบ 'ดำเนินการต่อ'
สาเหตุมันทำให้เกิดการยกเลิกในช่วงต้นของวงมันทำให้การดำเนินการเริ่มต้นของการทำซ้ำต่อไปในช่วงต้น
ความต่อเนื่อง'หยุด' หยุดความต่อเนื่องของวง'ทำต่อ' จะไม่หยุดความต่อเนื่องของการวนซ้ำ แต่จะหยุดการทำซ้ำปัจจุบันเท่านั้น
การใช้งานอื่น ๆ'break' สามารถใช้กับ 'switch', 'label'ไม่สามารถดำเนินการ 'ดำเนินการต่อ' ด้วย 'สวิตช์' และ 'ป้ายกำกับ'

ความหมายของการแบ่ง

ในตัวแบ่ง C ++ มีการใช้เพียงสองครั้งนั่นคือครั้งแรกมันถูกใช้เพื่อ“ ยุติการดำเนินการของเคสในคำสั่งสวิตช์” ประการที่สองเพื่อ“ ยุติการวนซ้ำและกลับสู่การควบคุมไปยังคำสั่งถัดไปหลังจากการวนซ้ำ” แต่ในตัวแบ่ง Java มีสามใช้ครั้งแรกมันจะยุติกรณีในสวิตช์ที่สองเพื่อยุติการวนรอบล้อมรอบและที่สามดังกล่าวก่อนหน้านี้ที่ Java ไม่ได้ให้คำสั่ง 'goto' แต่แบบฟอร์มขยายสามารถใช้ใน สถานที่ของ 'goto'

ให้เราดูรายละเอียดการใช้งาน 'break' แต่ละครั้ง

ใช้งานครั้งแรกเพื่อยุติการดำเนินการของเคสในสวิตช์ สวิตช์ break in มีผลกับสวิตช์ที่ล้อมรอบเท่านั้นและจะไม่มีผลกับ loop ที่ล้อมรอบสวิตช์

 // ในบริบทของ C ++ // การใช้ break in switch ในบริบทของ C ++ สวิตช์ (นิพจน์เลขจำนวนเต็ม) {กรณีที่ 1: ..... ..... ตัวแบ่ง กรณีที่ 2: ..... ..... break; กรณีที่ 3: ..... ..... ตัวแบ่ง ค่าเริ่มต้น: ....... ....... } 

การใช้งานครั้งที่สองเพื่อบังคับให้ยกเลิกการวนซ้ำและดำเนินการต่อที่คำสั่งถัดไปของการวนซ้ำ ทันทีที่พบคำสั่ง break ภายในลูปลูปนั้นจะถูกยกเลิกทันทีโดยไม่ต้องใช้รหัสที่เหลือในเนื้อความของลูปนั้นและการควบคุมโปรแกรมจะไปถึงคำสั่งถัดไปที่เขียนหลังจากลูปนั้น

 // ใช้ตัวแบ่งเพื่อออกจากลูปในบริบทของคลาส Java main_class {สแตติกโมฆะสาธารณะหลัก (สตริง args []) {สำหรับ (int i = 0; i <100; i ++) {system.out.println ("i:" + i); ถ้า (i == 10) ทำลาย; // ตามเงื่อนไขข้างใน 'if' การควบคุม satistfies ออกจาก 'for' loop } system.out.println ("หยุดพักวนที่นี่"); }} 

ทำลายให้โปรแกรมออกจากลูปที่ล้อมรอบเท่านั้น หากใช้ตัวแบ่งกับลูปซ้อนกันจะแบ่งเฉพาะลูปด้านในสุดและไม่ส่งผลกระทบต่อลูปด้านนอก

การใช้งานครั้งที่สามโดยใช้ตัวแบ่งเป็นรูปแบบของการข้ามไป Java ใช้ break เป็นรูปแบบของ goto โดยไม่มีปัญหา เนื่องจาก goto มีการแตกแขนงแบบไม่มีโครงสร้างซึ่งยากต่อการเข้าใจและยังข้ามไปห้ามการเพิ่มประสิทธิภาพของคอมไพเลอร์ Java ใช้รูปแบบการแบ่งที่ขยายเพิ่มซึ่งคล้ายกับ goto และช่วยให้ออกจากบล็อกมากกว่าหนึ่งครั้งและกลับมาควบคุมโปรแกรมต่อไป จุดสิ้นสุดของบล็อกที่มีป้ายกำกับซึ่งถูกกล่าวถึงด้วยคำสั่ง break

ประกาศ:

 ทำลายฉลาก 

ที่นี่” label” เป็นชื่อของบล็อกบางรหัสหรือตัวระบุใน Java และบล็อกที่มีป้ายกำกับนี้จะต้องล้อมรอบคำสั่ง break คำสั่ง break ที่มีเลเบลใช้เพื่อออกจากชุดของลูปที่ซ้อนกัน เนื่องจากพบคำสั่ง break ที่มีข้อความกำกับการควบคุมจะออกจากบล็อกที่ติดป้ายซึ่งกล่าวถึงด้วยคำสั่ง break
มาดูกันดีกว่า

 // การใช้ break เป็นรูปแบบของ goto ในบริบทของคลาส Java main_class {โมฆะสแตติกสาธารณะหลัก (สตริง args []) {boolean t = true; แรก {ที่สอง {สาม {system.out.println ("บล็อกที่สามนี้"); ถ้า (t) ทำลายก่อน } system.out.println ("บล็อกที่สองนี้"); } system.out.println ("บล็อกแรกนี้"); } system.out.println ("บล็อกหลักนี้"); }} // ผลลัพธ์: นี่คือบล็อกที่สามนี่คือบล็อกหลัก 

ในรหัสนี้เมื่อตัวควบคุมมาถึงบล็อกที่สามคำสั่งพิมพ์ของมันจะถูกดำเนินการและหลังจากนั้นตัวควบคุมจะกลับไปที่คำสั่ง 'if' และเมื่อเป็นที่พอใจแล้วคำสั่ง break พร้อมกับฉลากจะถูกดำเนินการ เลเบลที่แนบมากับตัวแบ่งเป็นอันดับแรกดังนั้นการควบคุมจะดำเนินต่อไปยังคำสั่งที่เขียนหลังจากสิ้นสุดบล็อกแรกเช่นในบล็อกหลักซึ่งเป็นคำสั่งพิมพ์และที่ได้รับการดำเนินการ

คำจำกัดความของดำเนินการต่อ

เมื่อตัวแบ่งยุติการวนซ้ำที่เหลืออยู่ของลูปและอนุญาตให้ตัวควบคุมออกจากลูปได้ที่นี่การทำงานต่อไปจะค่อนข้างคล้ายกับตัวแบ่ง คำสั่ง Continue หยุดการทำงานของรหัสที่เหลือในลูปสำหรับการวนซ้ำปัจจุบันนั้นและดำเนินการควบคุมต่อไปที่การวนซ้ำครั้งถัดไปของลูปนั้นคำสั่ง continue จะข้ามรหัสสำหรับการวนซ้ำปัจจุบันและผ่านการควบคุมไปยังการวนซ้ำถัดไปของลูป

ลองมาทำความเข้าใจกับตัวอย่าง

 // ใช้ดำเนินการต่อในบริบทของ C ++ // มันพิมพ์จำนวนคู่จนถึง 100 คลาส main_class {public void static main (สตริง args []) {สำหรับ (int i = 0; i <100; i ++) {ถ้า (i% 2! = 0) ดำเนินการต่อ; // ดำเนินการต่อการควบคุมไปยังการวนซ้ำถัดไปในสำหรับระบบวนรอบout.print.ln ("i:" + i); }}} 

ในโปรแกรมด้านบนหากคำสั่ง 'if' เป็นที่พอใจแล้วให้ดำเนินการคำสั่งต่อไปซึ่งไม่อนุญาตให้ใช้คำสั่งการพิมพ์ต่อไปนี้เพื่อดำเนินการและกลับสู่การควบคุมการวนซ้ำถัดไปของ 'for' หาก i = 1 แสดงว่าเงื่อนไข 'if' เป็นที่พอใจและดำเนินการต่อโดยไม่ต้องดำเนินการคำสั่งการพิมพ์สำหรับค่าคี่ของ 'i' และการควบคุมจะดำเนินต่อไปในการวนซ้ำถัดไปของลูป 'for i = 2' ถ้า i = 2 ดังนั้นคำสั่ง 'if' จะไม่เป็นที่พอใจ ดำเนินการต่อไม่ได้ดำเนินการและพิมพ์คำสั่งพิมพ์ค่าของ 'i' ซึ่งเป็นคู่

ความแตกต่างที่สำคัญระหว่าง Break และ Continue

  1. โดยทั่วไปแล้ว break keyword จะยุติการวนซ้ำที่เหลือของ loop ในทางกลับกันคำหลักที่ดำเนินการต่อจะยกเลิกเฉพาะการวนซ้ำปัจจุบันของลูป
  2. เมื่อคำสั่ง break ทำงานแล้วการควบคุมของโปรแกรมจะออกจากลูปและกลับสู่คำสั่งถัดไปหลังจากลูป ในกรณีที่มีคำหลักต่อไปการควบคุมของโปรแกรมจะดำเนินต่อไปที่การวนซ้ำครั้งถัดไปของลูป
  3. ตามขั้นตอนข้างต้นสรุปว่าหลังจากการดำเนินการควบคุมการแยกของโปรแกรมออกจากลูปเป็นที่เข้าใจกันอย่างชัดเจนว่าการแบ่งทำให้เกิดการเลิกจ้างก่อนหน้าของลูปใด ๆ ในทางกลับกันให้ดำเนินการเพียงยกเลิกการวนซ้ำปัจจุบันและกลับสู่การวนซ้ำครั้งถัดไปของลูปจากนั้นเราสามารถพูดได้ว่าการดำเนินการต่อทำให้เกิดการเรียกใช้ซ้ำของลูปถัดไป
  4. คีย์เวิร์ด break หยุดการวนซ้ำที่เหลือทั้งหมดหลังจากการประมวลผลเพื่อให้เราสามารถพูดได้ว่ามันหยุดการทำงานต่อเนื่องของลูปในขณะที่คีย์เวิร์ด continue ยังคงดำเนินการลูปต่อไป
  5. คีย์เวิร์ด break สามารถใช้พร้อมกับคำสั่ง "switch" เช่นเดียวกับ "label" ในขณะที่คีย์เวิร์ด continue ไม่สามารถใช้กับ "switch" และ "label"

สรุป:

คำสั่ง break และ continue ทั้งคู่เป็นคำสั่ง jump ที่ถ่ายโอนการควบคุมไปยังส่วนอื่นของโปรแกรม ที่ break คำสั่งให้การควบคุมออกจากวงคำสั่งดำเนินการต่อให้การควบคุมการวนซ้ำถัดไปของวงนั้น

Top