ใน C และ C ++ มันง่ายมากที่จะเขียนโค้ดต่อไปนี้พร้อมกับข้อผิดพลาดร้ายแรง
char responseChar = getchar();
int confirmExit = 'y' == tolower(responseChar);
if (confirmExit = 1)
{
exit(0);
}
ข้อผิดพลาดคือคำสั่ง if ควรได้รับ:
if (confirmExit == 1)
ดังที่เขียนไว้มันจะออกทุกครั้งเนื่องจากการกำหนดconfirmExit
ตัวแปรเกิดขึ้นจากนั้นconfirmExit
จะถูกใช้เป็นผลลัพธ์ของการแสดงออก
มีวิธีที่ดีในการป้องกันข้อผิดพลาดประเภทนี้หรือไม่?
if (confirmExit)
คุณกำหนดค่าบูลีนจึงใช้มันเป็นแบบบูล:
a = b
หรือa == b
ภายในเงื่อนไขก็ได้