Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การวาง Semicolon หลัง while และ if ใน C++


ปัญหาของ Semicolon หลัง while

while (expression);

while loop จะทำงานไม่ว่า expression จะ true หรือ false เพราะ semicolon ทำให้เป็น empty statement

ปัญหาของ Semicolon หลัง if

if (expression);

คำสั่งจะทำงานไม่ว่า expression จะ true หรือ false เช่นกัน

เหตุผล

Syntax ของ if และ while คือ:

if (<expr>) <statement>
// หรือ
while (<expr>) <statement>

<statement> จะทำงานก็ต่อเมื่อ <expr> เป็น true แต่ถ้าไม่มี braces {} คำสั่งถัดไปที่จบด้วย ; จะกลายเป็น statement นั้น แม้จะเป็น empty statement ก็ตาม

if (<expr>)  /* Empty Statement */;
while (<expr>) /* Empty Statement */;

ในทั้งสองกรณี ไม่มีคำสั่งใดถูก執行 (หลังจากประเมิน expression แล้ว) แต่ while อาจเข้าสู่ infinite loop

หมายเหตุ: {} คือ statement-block (ประเภทหนึ่งของ statement ที่ประกอบด้วยรายการ statements อื่นๆ)