อย่างที่เราทราบดีว่าในภาษาซี 'while' มีการใช้คำสำคัญเพื่อกำหนดลูปที่ทำงานบนเงื่อนไขที่ส่งผ่านเป็นอาร์กิวเมนต์ไปยังลูป ขณะนี้ตามเงื่อนไขสามารถมีค่าสองค่าจริงหรือเท็จ ดังนั้นรหัสภายในในขณะที่บล็อกจะถูกดำเนินการซ้ำๆ หากเงื่อนไขเป็นจริง และหากเงื่อนไขเป็นเท็จ รหัสจะไม่ถูกดำเนินการ
ตอนนี้ส่งอาร์กิวเมนต์ไปยังลูป while เราสามารถแยกความแตกต่างระหว่าง while(1) และ while(0) เนื่องจาก while(1) เป็นลูปที่เงื่อนไขจะถือว่าเป็นจริงเสมอ ดังนั้นโค้ดภายในบล็อกจึงเริ่มทำงานซ้ำๆ นอกจากนี้ เราสามารถระบุได้ว่าไม่ใช่ 1 ที่ส่งผ่านไปยังลูปและทำให้เงื่อนไขเป็นจริง แต่ถ้าจำนวนเต็มที่ไม่เป็นศูนย์ถูกสร้างให้ส่งผ่านในขณะที่วนซ้ำ มันจะถือเป็นเงื่อนไขจริงและด้วยเหตุนี้โค้ดจึงเริ่มทำงานพี>
ในทางกลับกัน while(0) เป็นลูปที่เงื่อนไขจะถือว่าเป็นเท็จเสมอ ดังนั้นโค้ดภายในบล็อกจะไม่เริ่มทำงาน นอกจากนี้ เราสามารถระบุได้ว่ามีเพียง 0 เท่านั้นที่ส่งผ่านไปยังลูปและทำให้เงื่อนไขเป็นเท็จ ดังนั้นหากมีจำนวนเต็มที่ไม่เป็นศูนย์อื่น ๆ ค่าลบก็อาจส่งผ่านในขณะที่ลูปได้เช่นกัน ก็จะถือเป็นเงื่อนไขจริงและด้วยเหตุนี้ โค้ดเริ่มทำงาน
ประเด็นที่กล่าวถึงข้างต้นสามารถแสดงให้เห็นได้ด้วยความช่วยเหลือของตัวอย่างที่แสดงด้านล่าง
ตัวอย่าง
ตัวอย่าง while(1)
#include using namespace std; main(){ int i = 0; cout << "Loop get started"; while(1){ cout << "The value of i: "; if(i == 10){ //when i is 10, then come out from loop break; } } cout << "Loop get ended" ; }
ผลลัพธ์
Loop get started The value of i: 1 The value of i: 2 The value of i: 3 The value of i: 4 The value of i: 5 The value of i: 6 The value of i: 7 The value of i: 8 The value of i: 9 The value of i: 10 Loop gets ended
ตัวอย่าง
ตัวอย่าง while(0)
#include using namespace std; main(){ int i = 0; cout << "Loop get started"; while(0){ cout << "The value of i: "; if(i == 10){ //when i is 10, then come out from loop break; } } cout << "Loop get ended" ; }
ผลลัพธ์
Loop get started Loop get ended