Trong C và C ++, rất dễ viết mã sau đây với một lỗi nghiêm trọng.
char responseChar = getchar();
int confirmExit = 'y' == tolower(responseChar);
if (confirmExit = 1)
{
exit(0);
}
Lỗi là câu lệnh if nên có:
if (confirmExit == 1)
Như được mã hóa, nó sẽ thoát ra mỗi lần, bởi vì việc gán confirmExit
biến xảy ra, sau đó confirmExit
được sử dụng làm kết quả của biểu thức.
Có những cách tốt để ngăn chặn loại lỗi này?
if (confirmExit)
.
a = b
hoặc a == b
trong một điều kiện.