Dalam C dan C ++, sangat mudah untuk menulis kode berikut dengan kesalahan serius.
char responseChar = getchar();
int confirmExit = 'y' == tolower(responseChar);
if (confirmExit = 1)
{
exit(0);
}
Kesalahannya adalah bahwa pernyataan if seharusnya:
if (confirmExit == 1)
Sebagai kode, itu akan keluar setiap waktu, karena penugasan confirmExit
variabel terjadi, kemudian confirmExit
digunakan sebagai hasil dari ekspresi.
Adakah cara yang baik untuk mencegah kesalahan semacam ini?
if (confirmExit)
.
a = b
atau a == b
di dalam suatu kondisi.