Controllo di flusso

22 marzo 2017

Il costrutto if-else

Objective-C supporta il costrutto if-else con la sintassi classica del C. Ecco un esempio:

    if (anInt > 0) {
        NSLog(@"%d is greater than zero", anInt);
    } else {
        NSLog(@"%d is not greater than zero", anInt);
    }

Il comando if viene seguito da un’espressione booleana racchiusa obbligatoriamente da parentesi tonde. Nel caso in cui la condizione sia vera, allora viene eseguito il codice all’interno del primo blocco di parentesi graffe.

Se viene fornito un blocco else, esso viene eseguito nel caso in cui l’espressione booleana viene valutata come falsa.

Come avviene in C ed altri linguaggi simili, le parentesi graffe che racchiudono i blocchi di codice che seguono i comandi if e else possono essere omesse se contengono una sola istruzione:

        if (anInt > 0)
            NSLog(@"%d is greater than zero", anInt);
        else
            NSLog(@"%d is not greater than zero", anInt);

Il ciclo for

Anche il costrutto for classico fornito da C è disponibile in Objective-C. La sintassi segue la seguente struttura:

for (DEFINIZIONE VARIABILI LOCALI; CONDIZIONI; ESPRESSIONE ESEGUITA AL TERMINE DEL CICLO) {
    ISTRUZIONI DA ESEGUIRE PER OGNI CICLO
}

Ecco un esempio dove stampiamo tutti gli interi da 0 ad un valore pari al risultato dell’espressione anInt - 1:

        for (int i = 0; i < anInt; i++) {
            NSLog(@"%d", i);
        }

Il costrutto for … in

Per iterare gli elementi in una collection (come ad esempio NSArray, che vedremo in seguito) Objective-C 2.0 ha introdotto il costrutto for in.

Per capire come funziona, anticipiamo la definizione di un NSArray contenente 3 stringhe:

        NSArray * fruits = @[@"Apple", @"Orange", @"Kiwi"];

Possiamo stampare tutti gli elementi dell’array fruits scrivendo quanto segue:

for (NSString * fruit in fruits) {
    NSLog(@"%@", fruit);
}

L’ouput sarà il seguente:

Apple
Orange
Kiwi

Il ciclo while

Objective-C eredita da C anche il ciclo while, parola chiave che va seguita da un’espressione booleana tra parentesi tonde.

Finché l’espressione sarà vera, verrà eseguito il corpo del ciclo while, ovvero il codice tra parentesi graffe.

        NSArray * fruits = @[@"Apple", @"Orange", @"Kiwi"];
        int index = 0;

        while (index < fruits.count) {
            NSLog(@"%@", fruits[index]);
            index++;
        }

Nel caso in cui il corpo del ciclo while contenesse una sola istruzione, anche in questo caso possiamo omettere le parentesi graffe.

Il ciclo do while

Questa variante del ciclo while visto in precedenza esegue sempre almeno una volta le istruzioni contenute nel corpo del do, anche nel caso in cui la condizione che segue la parola chiave while sia falsa.

        do {
            NSLog(@"%@", fruits[index]);
            index++;
        } while (index < fruits.count);

Tutte le lezioni

1 ... 3 4 5 ... 21

Se vuoi aggiornamenti su Controllo di flusso inserisci la tua e-mail nel box qui sotto:
Tags:
 
X
Se vuoi aggiornamenti su Controllo di flusso

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy