Operator logik yang dipakai dalam C++ adalah :
Prioritas |
Simbol |
Operator |
1 |
! |
Not |
2 |
&& |
And |
3 |
II |
Or |
Operator logik dalam C++ memungkinkan kita melakukan beberapa tes secara. Simultan dalam pernyataan while atau if-elsc. Tabel di atas menunjukkan, selain operator-operator logik dalam C++,juga prioritas rankingnya. Operator not (!) mempunyai prioritas di bawah tanda kurung dan di atas operator aritmatik. Dua operator logik yang lain, yaitu and (&&) dan or (||), mempunyai prioritas di bawah operator relasional dan di atas operator assignment. Misal kita ingin melakukan dua atau lebih tes secara simultan maka masing-masing kondisi dapat digabung dengan operator logik. and sebagai berikut:
if(test_l && test_2 && test3 .,.)
Kalau kita ingin salah satu atau kombinasi dari suatu grup untuk membuat suatu tes menghasilkan true maka masing-masing kondisi dapat digabung dengan operator logik or sebagi berikut:
if(test 1 || test 2 || test3 …)
Konsep di atas dapat dijelaskan lewat contoh program ini:
// C5_2.CPP
#include <iostream.h>
main ()
{
int a=2, b=4;
if (a ==2 && b==4)
cout << “(a==2 && b=4) adalah true” << “\n”;
else
cout << “(a==2 && b=4) adalah false” << “\n”;
if (a ==3 && b==4)
cout << “(a==3 && b=4) adalah true” << “\n”;
else
cout << “(a==3 && b=4) adalah false” << “\n”;
if (a ==3 || b==4)
cout << “(a==3 || b=4) adalah true” << “\n”;
else
cout << “a==3 || b=4) adalah false” << “\n”;
if (a ==3 || b ==5)
cout << “(a==3 || b=5) adalah true” << “\n”;
else
cout << “(a==3 || b=5) adalah false” << “\n”;
}
Operator not yang mendahului suatu kondisi tes akan membalik hasil tes tersebut, misalnyajika a adalah true maka !a adalah false atau jika a adalah false maka !a adalah true.
C++ adalah bahasa yang effisien. Jika beberapa tes-relasional digabung dengan operator-operator logik, C++ tidak selalu mengevaluasi ekpresi gabungan ini secara penuh, Langkah ini diambil supaya program dapat berjalan lebih cepat tapi juga ada bahayanya misalnya:
if ((5 > 4) || (penjualan < 15) && (15 != 15)) …
C++ hanya melihat kondisi yang pertama saja yaitu (5 > 4). Karena (5 > 4) adalah true dan karena true || selalu menghasilkan true maka C++ akan mengabaikan kondisi-kondisi yang lain. Kadang-kadang kita. terpaksa memecah suatu pemyataan if yang kompiek menjadi beberapa pemyataan if yang lebih sederhana untuk memastikan masing-masing kondisi yang ada pada pemyataan if yang kompiek tersebut dievaluasi.