This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dydaktyka:cprog:common_mistakes [2015/11/08 18:23] pkleczek |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Częste błędy ====== | ||
- | |||
- | ...czyli na co zwracać szczególną uwagę podczas pisania programu. | ||
- | |||
- | ===== Przypisanie czy porównanie? ===== | ||
- | |||
- | W języku C operator ''='' oznacza przypisanie, natomiast operator ''=='' -- porównanie dwóch wartości (zobacz: [[dydaktyka:cprog:2015:conditionals#operatory_relacyjne|operatory relacyjne]]): | ||
- | |||
- | <code c> | ||
- | int a = 5; // przypisanie do zmiennej `a` wartosci 5 | ||
- | |||
- | if (a == 7) { // porownanie wartosci zmiennej `a` z wartoscia 7 | ||
- | ... | ||
- | } | ||
- | </code> | ||
- | |||
- | :!: Operator przypisania przypisuje temu, co stoi po lewej stronie (zazwyczaj zmiennej), wartość stojącą po prawej stronie. | ||
- | <code c> | ||
- | int a; | ||
- | 2 = a; // blad! | ||
- | a = 2; // OK | ||
- | </code> | ||
- | |||
- | ===== if-else ===== | ||
- | |||
- | Zamiast powtarzać ten sam warunek logiczny, tylko w formie zaprzeczenia, możesz skorzystać z konstrukcji ''if-else'' (//jeżeli -- w przeciwnym razie//). | ||
- | |||
- | <code c> | ||
- | // Dziala, ale trzeba duzo pisac i malo to czytelne... | ||
- | if (a*a + b*b == c*c) { | ||
- | return 1; | ||
- | } | ||
- | if (a*a + b*b != c*c) { | ||
- | return 0; | ||
- | } | ||
- | </code> | ||
- | <code c> | ||
- | // Lepiej! | ||
- | if (a*a + b*b == c*c) { | ||
- | return 1; | ||
- | } else { | ||
- | return 0; | ||
- | } | ||
- | </code> | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | * typ zmiennych podajemy tylko w deklaracji funkcji - nie w wywołaniu | ||
- | * return 0; w main() | ||