matematykaszkolna.pl
k kjnk: ktoś rzuci okiem? prosty kod k=20; if(k=0) k/=10; else k/=2; ile wynosi k? co oznacza w tym przypadku if(k=0)?
1 lut 13:54
Draghan: Jeśli to C, k = 0. Warunek if(k=0) "robi" dwie rzeczy: 1) przypisuje zmiennej k wartość zero (pojedyncze "=") 2) jest fałszywy − wszystkie wartości niezerowe są prawdą, zaś akurat tam k jest zerowane.
 0 
Wykona się linia k /= 10, ale nie zmieni ona wartości zmiennej, bo

= 0.
 10 
1 lut 13:58
kjnk: jeśli if jest fałszywy to czemu w takim przypadku nie wykonuje się else
1 lut 14:00
Draghan: Sorki, to miałem napisać. Wybacz, jestem po nocce przy książkach. Ale to i tak nie zmieni wartości zmiennej. emotka
1 lut 14:01
kjnk: czyi gdyby if wyglądał inaczej, np.: k=20; if(k=15) k/=3; else k/=5; k=5 .. dobrze rozumiem? emotka
1 lut 14:05
Draghan: Dobrze, pod warunkiem, że oczywiście to jest C/C++? emotka
1 lut 14:06
kjnk: Tak tak emotka i jeszcze mam jedno pytanie, co w takim kodzie oznacza pojedynczy &, a co &&? czy b= a && b oznacza iż zarówno a i b muszą być różne od 0? a co daje nam pojedynczy? a=5; b=0; c=1; if(b=2) c = a++ & b; else a=4; b = a && b;
1 lut 14:07
Draghan: Obydwa operatory odnoszą się do koniunkcji. Operator && to operator logiczny, oznaczający tyle, co "oraz". Stosuje się go w wyrażeniach logicznych − traktuje swoje argumenty jak wartości logiczne no i sam taką wartość zwraca. Linijka b = a && b sprowadza się do zamiany zmiennych do typu logicznego, czyli true lub false. Operator & to operator bitowy "and". Operuje bezpośrednio na reprezentacji bitowej − czyli można powiedzieć, że zamienia swoje argumenty na system dwójkowy i porównuje obydwa "pozycja po pozycji", tam gdzie obie są "1", daje "1", gdzie indziej daje "0" i zwraca tak "złożoną" liczbę. Najlepiej pokazać na przykładzie: 1101100 1001111 & _______ 1001100
1 lut 14:18
jakubs: "&&" to koniunkcja, czyli operator logiczny.
1 lut 14:18
kjnk: @Draghan emotka emotka i czego sobie jeszcze życzysz! dzięki wielkie!
1 lut 14:25
Draghan: emotka To jeszcze pytanie kontrolne: podaj liczbową wartość zmiennych a i b. emotka a = 5 && 0; b = 1 & 2;
1 lut 14:29
kjnk: a=0, bo 5 to true, 0 to false, a żeby było 1 obie wartości musiałyby być ≠0 b=0, bo 0001 & 0010 = 0000
1 lut 14:38
Draghan: emotka Super. emotka
1 lut 14:46