Różnica pomiędzy if() a if(){}

0

Witam,

Jaka jest różnica pomiędzy kodem:


if(warunek) instrukcja;


a

<code class="c#">
if(warunek)
{
instrukcja;
}

Fajnie jakby ktoś wytłumaczył.

0

Zastanów się, której wersji użyjesz, gdy będziesz chciał wykonać wiele instrukcji w zależności od spełnienia danego warunku?

0

W drugim możesz mieć więcej instrukcji niż jedną. Nawiasy wąsate określają zasięg zmiennych, jak zawsze. Poza tym różnic żadnych. Gdybyś zmienił wszystkie wystąpienia pierwszej konstrukcji na wzór drugiej to kod wynikowy powinien być identyczny (modulo informacje dla debuggera czyli numery linii w kodzie dla poszczególnych instrukcji oczywiście).

0

Dzięki za odpowiedź, jednak wasza odpowiedź mnie nie zadowala(zadowala w połowie). Może podam bardziej konkretny przykład.... Mam taki fragment:


if ((e.KeyChar < 48 | e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13)
{
e.Handled = true;
}
if (e.KeyChar == 13)
{
applySize(txt.Text);

            this.richTextBox.Focus();
        }

i taki:

<code class="c#">
 if ((e.KeyChar < 48 | e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13)

                e.Handled = true;

            if (e.KeyChar == 13)

                applySize(txt.Text);

                this.richTextBox.Focus();

Jest to fragment kodu który zmienia rozmiar czcionki w richBoxie. W drugim kodzie usunąłem tylko nawiasy szpiczaste, jednak zachowanie programu diametralnie się zmienia. Oczywiście pierwszy kod działa tak jak powinien. Moje pytanie: dlaczego tak się dzieje? Czy faktycznie chodzi o ilość instrukcji?

1

wasza odpowiedź mnie nie zadowala.

Inaczej mówiąc: masz problemy z czytaniem ze zrozumieniem naprawdę prostych rzeczy.

1

Wcięcia w kodzie nic w C# nie znaczą (dla kompilatora oczywiście). Tak samo jak w C, C++, Javie, itp itd

1

Mały offtop, bo chyba w tym temacie to i tak nic więcej do dodania nie ma.

Wibowit napisał(a)

Nawiasy wąsate

Paul87 napisał(a)

W drugim kodzie usunąłem tylko nawiasy szpiczaste

Czy nie można powiedzieć po prostu nawiasy klamrowe? :)

0

To oczywiście wiem, ja jednak nie pytam o wcięcia, tylko o klamry.

2

jeśli Ci działa coś nie tak, to może przeinstaluj kompilator i inne rzeczy począwszy od windowsa. przynajmniej będziesz miał jakieś bardziej odpowiednie dla Ciebie zajęcie niż programowanie.

1

if(a) b; c; wykonuje najpierw "b" jeśli zachodzi warunek "a", a potem wykonuje "c". Proste i logiczne, podstawy na poziomie żłobka.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0