Programiranjem rešavamo realne probleme, a u realnom svetu često ne odlučujemo samo da li nešto da uradimo ili ne, već često biramo koju od dve stvari treba uraditi. Tako je i u poslednjem primeru koji smo uradili u lekciji "Uslovno izvršavanje".

Ovaj program će ili izvršiti liniju koraka = J - P; ili liniju koraka = P - J; jer je tačno jedan uslov zadovoljen. Drugi uslov je negacija prvog zato što, ako je uslov J > P tačan, uslov !(J > P) će biti netačan i obrnuto.
Ovako nešto se često javlja u programiranju - dva dela programa gde se svaki deo izvršava uslovno, a uvek se izvršava jedan od ta dva dela i nikada se ne izvršavaju oba. Ovakvo uslovno izvršavanje se toliko često javlja da postoji posebna struktura koja ga opisuje.
Opisana struktura se zove if-else i koristi se u sledećem programskom kodu.
static void Main(string[] args)
{
int J, P;
Console.WriteLine("Unesite dva broja: ");
Console.WriteLine("koliko Miki treba do Jocine i");
Console.WriteLine("koliko Miki treba do Perine kuce:");
J = int.Parse(Console.ReadLine());
P = int.Parse(Console.ReadLine());
int koraka = 0;
if (J > P)
{
koraka = J - P;
}
if (!(J > P))
{
koraka = P - J;
}
Console.WriteLine(koraka);
}

Posle if strukture koja nam je već poznata piše se ključna reč else, otvorena vitičasta zagrada, a zatim naredbe koje se izvršavaju samo kada uslov nije tačan, i na kraju zatvorena vitičasta zagrada.
Primetimo da grananje nije ništa suštinski novo - i dalje se bavimo samo uslovnim izvršavanjem - ali nam olakšava i skraćuje pisanje (i izvršavanje) programa.
Na engleskom jeziku "if" znači ako, a "else" znači inače. Ovaj prevod nam omogućava da bolje razumemo ovaj koncept. Deo posle ključne reči if se izvršava ako je uslov tačan, inače se izvršava deo posle ključne reči else.