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:36] pkleczek [if-else - co to?!] |
— (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> | ||
- | |||
- | ===== Typ danych w wywołaniu funkcji ===== | ||
- | |||
- | Typ zmiennych podajemy tylko w deklaracji funkcji -- nie w wywołaniu: | ||
- | |||
- | <code c> | ||
- | void func(int a) { // OK | ||
- | ... | ||
- | } | ||
- | |||
- | int main () | ||
- | { | ||
- | int k = 3; | ||
- | | ||
- | func(int k); // blad! | ||
- | func(k); // OK | ||
- | |||
- | ... | ||
- | } | ||
- | </code> | ||
- | |||
- | |||
- | ===== if-else - co to?! ===== | ||
- | |||
- | 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> | ||
- | |||
- | ===== Funkcja main() bez "return" ===== | ||
- | |||
- | (Minimalny) nagłówek funkcji ''main()'' wygląda następująco: | ||
- | <code c> | ||
- | int main(void) | ||
- | </code> | ||
- | Ten ''int'' oznacza, że funkcja ''main()'' zwraca wartość całkowitą (do systemu operacyjnego), a zatem powinna się ona kończyć instrukcją ''return'' (w naszym przypadku ''return 0;'', bo ''0'' oznacza poprawne zakończenie programu): | ||
- | <code c> | ||
- | int main(void) { | ||
- | return 0; | ||
- | } | ||
- | </code> | ||