การวนซ้ำในภาษา C++ ยังคงมีอยู่สามประเภทคือ while loops, do- While loops และ for loops ไม่มีความแตกต่างในวิธีการใช้งานของ break and Continue รวมถึงการใช้หลายๆ break และ Continue คำถามเพื่อการเรียนรู้และรวบรวมแนวคิดในส่วนนี้
มาดูคำถาม 1143 ในสนามฝึก ซึ่งเป็นคำถามเกี่ยวกับการหาจำนวนเฉพาะ หลังจากเข้าใจแนวคิดเรื่องจำนวนเฉพาะแล้ว จะเห็นได้ชัดว่าสำหรับจำนวน N ใดๆ เราจะต้องลองเรียงลำดับจาก 2 ถึง N-1 เพื่อตัดสินว่า หารด้วย N ลงตัว ค้นหาว่ามีตัวประกอบที่หารด้วย N ได้หรือไม่ หากไม่มีตัวประกอบ แสดงว่าไม่ใช่จำนวนเฉพาะ เป็นดังนี้:
#include<iostream>usingnamespacestd;intmain(){intn,i;cin>>n;for(i=2;i<n;i++){if(n%i==0)break;}if(i>= n)ศาล<<1<<endl;elsecout<<0<<endl;return0;}
ผลการทดสอบการทำงานมีดังนี้:
กฎเก่าคือคุณสามารถพิมพ์โค้ดด้วยตนเองและทดสอบในเครื่องได้ จากนั้นจึงดำเนินการต่อหลังจากส่งการส่งแล้ว
ต่อไป เรามาดูคำถามอื่นที่เกี่ยวข้องกับลูปในภาษา C++ กัน เนื่องจากเป็นเรื่องปกติในการแข่งขัน ACM ฉันจึงจะแสดงรายการคำถามนี้ให้กับทุกคนด้วย คำถามคือคำถาม 1,085 ในสนามฝึก มันเป็นคำถามง่ายๆ ในการค้นหาผลรวมของ A+B แต่เป็นข้อมูลทดสอบหลายชุด โดยจะรับลูปอย่างต่อเนื่อง วิธีเขียน C++ มีดังนี้
#include<iostream>usingnamespacestd;intmain(){inta,b; While(cin>>a>>b){cout<<a+b<<endl;}return0;}
ผลการวิ่งมีดังนี้:
โปรดทราบว่าเงื่อนไขใน while loop ถูกเขียนเป็นคำสั่ง cin เหตุใดจึงสามารถเขียนได้เช่นนี้ หลักการเหมือนกับการเขียนภาษา C while(scanf(%d%d,&a,&b)==2) ทุกประการ พวกเขาทั้งหมดตัดสินค่าส่งคืน นั่นคือค่าส่งคืนของ cin ที่ฉันบอกคุณก่อนหน้านี้ cin ส่งคืนอ็อบเจ็กต์ istream หากเกิดปัญหาและการรับสัญญาณล้มเหลว จะส่งคืนค่า false และการวนซ้ำจะสิ้นสุดลง
โปรดอย่าลืมทดสอบบนคอมพิวเตอร์ด้วยตัวเองและตอบคำถาม 1085~1092 ในสนามฝึกอบรมโดยใช้ C++