Dalam pernyataan if, menggunakan berbilang keadaan ATAU boleh menjadi teknik yang berguna untuk menilai berbilang keadaan serentak. Walau bagaimanapun, sintaks untuk menyatakan syarat ini boleh mengelirukan.
Dalam coretan kod di bawah, tujuannya adalah untuk menilai sama ada nombor input pengguna adalah sama dengan 1, 2 atau 3:
if (number==1||2||3) { cout << "Your number was 1, 2, or 3." << endl; }
Walau bagaimanapun, kod ini tidak berfungsi seperti yang diharapkan. Masalahnya terletak pada sintaks: cara syarat ditulis, pengkompil mentafsirkannya sebagai:
if ( (number == 1) || 2 || 3 ) {
Dalam tafsiran ini, operator OR logik (||) menilai kepada benar jika sama ada sebelah kiri adalah benar atau sebelah kanan adalah benar. Memandangkan kedua-dua 2 dan 3 adalah nilai benar, keseluruhan syarat dinilai kepada benar tanpa mengira nilai nombor.
Untuk menyatakan berbilang keadaan ATAU dengan betul, setiap syarat mesti dinilai secara eksplisit terhadap pembolehubah:
if (number==1 || number==2 || number==3) { cout << "Your number was 1, 2, or 3." << endl; }
Dengan sintaks ini, syarat akan dinilai dengan betul, kembali benar hanya jika nombor sama dengan 1, 2 atau 3.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Berbilang ATAU Keadaan dengan Betul dalam Pernyataan if?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!