Poznałeś już operatory porównań, teraz najwyższy czas poznać operatory logiczne. Ów operatory pozwalają na sprawdzenie w wyjątkowy sposób dwóch warunków, jest to nam pomocne przy budowaniu bardziej złożonych instrukcji warunkowych. Jest bardzo ważne, abyś zrozumiał zależności między nimi, nie da się już więcej na ten temat powiedzieć, najlepiej będzie jak prześledzisz poniższą tabelkę gdzie są rozpisane operatory logiczne:
P Q & | ^ !P
true true true true false false
false true false true true true
true false false true true false
false false false false false true
Już trochę wiedzy programistycznej posiadasz, powinieneś już rozumieć o co w tym biega, ale jeżeli jeszcze nie wiesz, to nie szkodzi, prześledź sobie program który prezentuje w dość prosty sposób jak działają operatory.
Początek kodu:
using System ;
class Pokaz
{
public static void Main()
{
bool P = true, Q = false ;
if(P&Q)
Console.WriteLine(„To sie nie wyświetli”);
if(P|Q)
Console.WriteLine(„Tak zgadza się P | Q daje wartość true”);
if(P^Q)
Console.WriteLine(„To zobaczysz”);
if(!P)
Console.WriteLine(„To sie nie wyświetli”);
}
}
Koniec kodu:
W warunku gdzie jest P&Q się nie wykona bo jego wartość jest false, dlatego tak jest, ponieważ & jest prawdą (ture) wtedy i tylko wtedy gdy obydwa argumenty (P i Q w tym przypadku) są true, analogicznie możesz odczytać to z tabelki.
W warunku gdzie jest P|Q instrukcja if się wykona ponieważ | jest true wtedy gdy przynajmniej jeden z argumentów jest równy prawdzie (czyli true).
W warunku P^Q instrukcja się wykona ponieważ operator ^ jest prawdą, wtedy i tylko wtedy gdy tylko jeden z argumentów jest prawdą.
Operator ! jest to po prostu przeciwieństwo argumentu, jeżeli wynosi on P = true to !P będzie wynosiło false.
Więcej chyba nie trzeba się rozpisywać, już pojąłeś, na czym to polega. Tym bardziej, że coraz już więcej przerobiłeś kursów, dlatego zatem już kursy będą czasem krótkie z tego względu, że czasem zrozumiesz tylko wtedy coś jak sam przeprowadzisz to w praktyce lub jak spojrzysz na kod źródłowy, dlatego nie ma się co rozpisywać nad tym.
Warto wspomnieć że istnieją tak zwane skrócone operatory logiczne, a dokładnie && i || czym się one różną, a no tym, że && jeżeli pierwszy argument jest równy false to drugi nawet nie będzie sprawdzany bo bez względu na wynik drugiego argumentu to i tak && nie będzie równe true, bo pierwszy argument jest równy false. Jeżeli pierwszy argument jest równy true to wtedy w przypadku && drugi argument jest obliczany. W || sprawa wygląda tak samo sprawdzany jest pierwszy argument jeżeli jest on równy true to nie jest sprawdzany drugi, a jeżeli pierwszy jest równy false to jest sprawdzamy drugi. Może się wydawać ci poco w takim razie normalne odpowiedniki? Skrócone operatory są używane w wyjątkowych przypadkach, aczkolwiek dość często, na przykład aby się uchronić przed dzieleniem przez zero. Jeżeli tego nie wymaga sytuacja powinieneś korzystać z normalnych operatorów logicznych, a nie z skróconych, jest to wydajniejsze i bezpieczniejsze. Poniżej zamieszczam tobie jak nazywa się poszczególne operatory:
& -> AND
| -> OR
^ -> XOR
! -> NOT
&& -> skrócony AND
|| -> skrócony OR