Programmazione iOS e Mac, Costrutti di selezione e operatori logici

Un costrutto di selezione denota la scelta (selezione) tra due insiemi di istruzioni, in dipendenza del valore di una condizione (predicato) .

Un costrutto di selezione deve specificare

1)Una condizione che può assumere due valori vero o falso

2)Due insiemi di istruzioni

Costrutto di selezione IF

Operatori Logici

Operatori Logici e di eguaglianza

== —————-> uguale

!=  —————-> diverso

Hanno priorità inferiore  a quella degli operatori di relazione

Operatori logici di connessione

! ————->negazione (not)

&& ———-> congiunzione (and)

|| ————> disgiunzione (or)

Hanno priorità inferiore a quella di tutti gli altri operatori logici

Esempio: programma Objective-C per il calcolo del valore assoluto di un numero 

[code lang=”objc”]</pre>
<div>
#include <Cocoa/Cocoa.h>
Int main(int argc, char *argv[]) {
<pre> float x,val_assoluto;
NSLog(@“inserire un numero ”);
scanf(“%f”,&x);//salviamo il valore della variabile immessa da input
if (x >= 0.0)

val_assoluto = x;
else</pre>
val_assoluto = -x; NSLog(@“\n valore assoluto di %f
<pre> = %f\n”,x,val_assoluto);
return 0;</pre>
}

[/code]

Costrutto di selezione nidificato 

Esempio: programma Objective-C per determinare se un numero intero è positivo, nullo o negativo

[code lang=”objc”]</pre>
<div>
#include <Cocoa/Cocoa.h>
int main(int argc, char *argv[])

{
int x;
NSLog(@“ inserire un numero\n”); scanf(“%i”,&x);
if (x > 0)
<pre> NSLog(@“%i e‟ positivo”,x);
else if (x == 0)

NSLog(@“%i e‟ nullo”,x);
else

NSLog(@“%i e‟ negativo”,x);
return 0;</pre>
}</div>
<div>[/code]

Costrutti  di ripetizione
While
[code lang=”objc”]
While <predicato>
<corpo del ciclo>
endwhile
[/code]

repeat until

[code lang=”objc”]
repeat
<corpo del ciclo>
until <predicato>
[/code]

do while

[code lang=”objc”]
do{
<corpo del ciclo>
}
while(<predicato>);
[/code]

Il costrutto for in Obj-c è equivalente a while

[code lang=”objc”]
for (i=a;i<=b;i=i+c)
{
<corpo del ciclo>
}
oppure possiamo scrivere
i=a
while (i<=b)
{
<corpo del ciclo>
i=i+c;
}
[/code]