Гранање

Наредбе гранања на основу вредности неког израза одређују да ли ће се, односно, која ће се наредба или група наредби извршити, што доводи до гранања у програму.

Исказ if

if (bulovIzraz) {
    naredbe;
}

bulovIzraz представља логички услов што значи да његова вредност може бити true (тачно) или false (нетачно). naredbe између витичастих заграда представљају блок наредби или појединачну наредбу. Када се у току програма наиђе на исказ if, прво се проверава вредност Буловог израза. Ако је та вредност тачна извршавају се наредбе између витичастих заграда, односно, ако је та вредност нетачна, прескаче се њихово извршавање и програм наставља са радом.

Пример. Напишите програм који израчунава збир унетих целих бројева и испитује да ли је израчунати збир дељив са три.

using System;
class ZbirUnetihBrojeva {
    static void Main() {
        int x, y, zbir;
        Console.Write("Unesi prvi broj: ");
        x = int.Parse(Console.ReadLine());
        Console.Write("Unesi drugi broj: ");
        y = int.Parse(Console.ReadLine());
        zbir = x + y;
        Console.WriteLine("{0} + {1} = {2}", x, y, zbir);
        if (zbir % 3 == 0) {
            Console.WriteLine("{0} je deljivo je sa 3", zbir);
        }
    }
}

У датом примеру, израчунава се збир унетих бројева, па потом испитује вредност Буловог израза “остатак приликом целобројног дељења променљиве zbir једнак је нули”. Ако је његова вредност true извршиће се наредба између витичастих заграда. Ако је његова вредност false, прескочиће се извршавање наредбе између витичастих заграда и програм наставља са радом (у овом случају долази до краја).

Исказ if-else

Пример. Напишите програм који испитује да ли унети цео број јесте или није већи од нуле.

using System;
class VeciOdNule {
    static void Main() {
        int x;
        Console.Write("Unesi broj: ");
        x = int.Parse(Console.ReadLine());
        if (x > 0) {
            Console.WriteLine("Broj {0} je veći od nule", x);
        }
        else {
            Console.WriteLine("Broj {0} nije veći od nule", x);
        }
    }
}

Пример. Напишите програм који учитава годину у облику целог броја и испитује да ли унета година преступна јесте или није преступна (година је преступна када је дељива са 400 или када је дељива са 4 а није дељива са 100).

using System;
class PrestupnaGodina {
    static void Main() {
        int godina;
        Console.Write("Unesi godinu: ");
        godina = int.Parse(Console.ReadLine());
        if (godina % 400 == 0 || (godina % 4 == 0 && godina % 100 != 0)) {
            Console.WriteLine("Godina {0}. je prestupna godina", godina);
        }
        else {
            Console.WriteLine("Godina {0}. nije prestupna godina", godina);
        }
    }
}

Задаци за вежбу

  1. Напишите програм који израчунава збир унетих целих бројева и испитује да ли израчунати збир јесте или није дељив са три.